Как WOMP сказал, браузер будет представлять только выбранное значение выпадающего списка. Это легко связывает связующее устройство по умолчанию, см. Ниже.
Если вы не редактируете список Возможные значения на клиенте, тогда нет необходимости отправлять их обратно. Если вам нужно повторно заполнить список, сделайте это на стороне сервера в своем post action, используя тот же метод, с которого вы первоначально заполняли словарь.
Например, в вас странице:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<ViewModel1>" %>
<!-- some html here -->
<%= Html.DropDownListFor(x => x.SelectedKey, new SelectList(Model.PossibleValues, "key", "value"))%>
В контроллере
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Edit() {
var model = new ViewModel1 {
PossibleValues = GetDictionary() //populate your Dictionary here
};
return View(model);
}
[AcceptVerbs(HttpVerbs.Post)]
public ViewResult Edit(ViewModel1 model) { //default model binding
model.PossibleValues = GetDictionary(); //repopulate your Dictionary here
return View(model);
}
Где GetDictionary() представляет собой метод, который возвращает свой населенный словарь объекта.
See this similar question for more details
Вы используете ASP.NET MVC версии 1 или 2? –
Я использую версию 2 – jameszhao00