【发布时间】:2016-03-09 09:52:56
【问题描述】:
我正在开发一个 MVC 应用程序,对于我当前的表单,我有一个类似的 ViewModel
public 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”
我做错了什么
【问题讨论】:
-
这肯定会有所帮助:stackoverflow.com/a/5688922/1638261
-
因为您生成了
<select name="MyModelTypeId" ... >,但您的模型不包含名为MyModelTypeId的属性(但它确实包含名为MyModel.MyModelTypeId的属性)。始终使用强类型 HtmlHelpers -DropDownListFor()
标签: .net model-view-controller razor