MVC-3视图中的异常无法对空引用执行运行时绑定

use*_*381 7 c# asp.net-mvc-3

我正在研究MVC-3.我的观点是我面临以下异常:

cannot perform runtime binding on a null reference
Run Code Online (Sandbox Code Playgroud)

模型类

    public class HomeModel
    {
        public IEnumerable<Html> Template { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

查看代码

@model Project.Models.HomeModel 

    @{
        ViewBag.Title = "Home Page";
        int i = 0;
    }
    <div class="container">
            @foreach (var e in Model.Template)    //getting exception on this foreach loop
            {
                 //loop content    
            }
    </div>
Run Code Online (Sandbox Code Playgroud)

调节器

public ActionResult Index()
{
    HomeModel model = new HomeModel();

    model.Template = db.Templates();

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

我的视图是HomeModel模型类的强类型.任何人都可以帮我解决这个问题吗?

Bis*_*del 8

这是由于LINQ的延迟执行.在您尝试访问它们之前,不会计算Model.Template的结果,在这种情况下,db.Template超出了视图范围.您可以使用ToList()to ToArray()ToDictionary()with来完成db.Templates.

您的Controller的代码应如下所示:

public ActionResult Index()
{
    HomeModel model = new HomeModel();

    model.Template = db.Templates.ToList();

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)