1

我收到错误消息“对象引用未设置为对象的实例。” 尝试为我的 MVC 项目中的模型字段分配值时。我的模型(非强类型)在我的视图中被引用,因此:

...Inherits="System.Web.Mvc.ViewPage<Project.Models.MyModel>" %>

当我在视图中访问时,Intellisense 会拾取 MyModel 的字段。我的模型贴在下面:

namespace Project.Models
{
    public class MyModel
    {
        public int AddressId { get; set; }
        public int AddressTypeId { get; set; }
       ....
    }
}

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

这里缺少什么?

4

2 回答 2

2

确保您已将模型从渲染它的控制器操作传递到此视图:

public ActionResult SomeAction()
{
    MyModel model = ... fetch your model from somewhere 
    return View(model); // <!-- Notice how the model must be passed to the view
}

显然,从您检索模型的任何位置检索模型的函数必须确保模型不为空。或者,您可以在视图中测试模型是否在访问它的属性之前不为空,如果它为空,则呈现一些替代内容。

于 2013-08-06T14:27:39.107 回答
0

您必须先初始化模型

例如:

    公共 ActionResult YourAction()
    {
        MyModel 模型 = new MyModel();
        返回视图(模型);
    }

于 2013-08-06T14:42:00.237 回答