Như womp nói, trình duyệt sẽ chỉ nộp giá trị được chọn trong danh sách thả xuống. Điều này dễ bị ràng buộc bởi chất kết dính mô hình mặc định, xem bên dưới.
Nếu bạn không chỉnh sửa danh sách PossibleValues trên máy khách thì không cần phải gửi lại chúng. Nếu bạn cần phải repopulate danh sách sau đó làm điều đó phía máy chủ trong hành động bài của bạn bằng cách sử dụng cùng một phương pháp bạn ban đầu dân cư từ điển với.
Ví dụ trong bạn page:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<ViewModel1>" %>
<!-- some html here -->
<%= Html.DropDownListFor(x => x.SelectedKey, new SelectList(Model.PossibleValues, "key", "value"))%>
Trong điều khiển của bạn
[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);
}
đâu GetDictionary() là một phương thức trả về đối tượng từ điển dân cư của bạn.
See this similar question for more details
Nguồn
2010-01-30 11:19:08
Bạn đang sử dụng ASP.NET MVC phiên bản 1 hoặc 2? –
Tôi đang sử dụng phiên bản 2 – jameszhao00