我正在研究MVC应用程序,对于我当前的表单,我有一个类似
的ViewModelpublic class MyViewModel
{
public MyModel MyModel { get; set; }
...
和MyModel的类型为
public class MyModel
{
public int MyModelTypeId { get; set; }
...
现在,我需要一个DropDownList来填充MyModelTypeId,
这就是我在视图中的内容:
@Html.DropDownList("MyModelTypeId", String.Empty)
并在控制器中:
ViewBag.MyModelTypeId = new SelectList(db.MyModelTypes, "MyModelTypeId", "MyModelTypeName", model.MyModel.MyModelTypeId);
现在,下拉菜单填充得很好,但是在帖子上,所选择的值没有绑定到“MyModel'
”我做错了什么
答案 0 :(得分:2)
下拉列表绑定到您在ViewBag中创建的MyModelTypeId
属性,而不是`MyModel'的MyModelTypeId
属性。类。
您应该将选择列表存储在MyModel
中public class MyModel
{
public int MyModelTypeId { get; set; }
public IEnumerable<SelectListItem> MyModelTypes { get; set; }
将您在控制器中创建的选择列表分配给此属性,然后在视图中呈现下拉列表,将MyModelTypeId
作为值将所选项目绑定到,并MyModelTypes
as要使用的选择列表:
@Html.DropDownListFor(m => m.MyModel.MyModelTypeId, Model.MyModel.MyModelTypes)
提交表单后,所选值将绑定到MyModel.MyModelTypeId