MVC中的模型未被赋值

时间:2013-08-06 14:25:40

标签: c# asp.net-mvc asp.net-mvc-3

我收到错误,“对象引用未设置为对象的实例。”尝试将值分配给我的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; }
       ....
    }
}

正如你所看到的,我在每个领域都设置了一套,一切都是公开的。但是当我调试它时,只要我点击与模型有关的任何内容,编译器就会抱怨“对象引用未设置为对象的实例”。

这里缺少什么?

2 个答案:

答案 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);
    }