我收到错误,“对象引用未设置为对象的实例。”尝试将值分配给我的MVC项目中的模型字段时。我的模型中引用了我的模型(非强类型):
...Inherits="System.Web.Mvc.ViewPage<Project.Models.MyModel>" %>
当我在视图中访问MyModel时,Intellisense会选择MyModel的字段。我的模型发布在下面:
namespace Project.Models
{
public class MyModel
{
public int AddressId { get; set; }
public int AddressTypeId { get; set; }
....
}
}
正如你所看到的,我在每个领域都设置了一套,一切都是公开的。但是当我调试它时,只要我点击与模型有关的任何内容,编译器就会抱怨“对象引用未设置为对象的实例”。
这里缺少什么?
答案 0 :(得分:2)
确保已将模型从呈现它的控制器操作传递到此视图:
public ActionResult SomeAction()
{
MyModel model = ... fetch your model from somewhere
return View(model); // <!-- Notice how the model must be passed to the view
}
显然,从您检索模型的任何位置检索模型的函数必须确保模型不为null。或者,您可以在视图中测试模型在访问它的属性之前是否为null,如果为null则呈现一些替代内容。
答案 1 :(得分:0)
您必须先初始化您的模型
例如:
public ActionResult YourAction() { MyModel model = new MyModel(); return View(model); }