【发布时间】:2012-11-21 06:18:05
【问题描述】:
我正在使用this example 开发一个下拉列表。在我对视图中调用模型的方式进行一些更改之前,它运行良好。下拉列表模型类称为 dropdownModel。因为我的视图包含 2 个模型,所以我创建了一个“大”模型类 BigModelClass 来保存我的两个模型。
大模型是这样的
public class BigModelClass {
public DropDownModel dropDownModel { get; set; }
public IEnumerable<projectname.Model.model2> var2 { get; set; }
}
在我看来,我将模型称为:
@model BigModel
现在在我看来,我调用使用下拉列表如下:
@Html.LabelFor(m => m.dropDownModel.State)
@Html.DropDownListFor(m => m.dropDownModel.State,
new SelectList(Model.dropDownModel.StateList, "Value", "Text"))
<span class="required"></span>
@Html.ValidationMessageFor(m => m.dropDownModel.State)
很遗憾,我收到以下错误:
System.NullReferenceException:对象引用未设置为对象的实例。
上线
@Html.DropDownListFor(m => m.dropDownModel.State, new SelectList(Model.dropDownModel.StateList, "Value", "Text"))
如果我只使用 dropDownModel 模型,一切都可以正常工作。
非常感谢任何帮助
编辑 视图的控制器:
public ActionResult Index(){
return View (new BigModelClass());
}
【问题讨论】:
-
发布你的控制器的代码,问题可能是你如何实例化模型。
-
您正在使用 m.dropDownModel 但我在 BigModel 中看不到 dropDownModel 的定义
-
@Johann & Behnam:请参阅编辑。
-
@jpo 你在哪里初始化 Model.dropDownModel ?
-
你的确切问题是这个!你可以在构造函数中初始化它。
标签: asp.net-mvc-3 view drop-down-menu model visual-studio-2012