ASP.NET MVC部分视图帮助

时间:2011-03-24 19:07:48

标签: asp.net-mvc

我在asp.net mvc解决方案中创建了一个局部视图,它将显示数据库中的项目列表。但是我收到错误消息:Object reference not set to an instance of an object.

我不确定为什么会这样,因为就我而言一切都很好。项目列表是通过VenuesController控制的场地但部分视图位于/ shared /文件夹内,而不是视图的/ venues /文件夹,所以asp.net抱怨因为它没有将两者连接在一起吗?

这是我在VenuesController中的代码:

//
// GET: /Venues/

public ActionResult Index()
{
    return View(_repository.ListAll());
}

public ActionResult VenuesList()
{
    return PartialView("VenuesList",_repository.ListAll());
}

Index()工作正常并在/Views/Venues/Index.aspx中显示数据,但VenuesList()会抛出错误:/

感谢。

2 个答案:

答案 0 :(得分:1)

您提到的错误消息:

Object reference not set to an instance of an object.

通常在引用集合的属性时处理,并且它为null。您可能希望确保项目列表是:

  • 不是空的。
  • 正确实例化。

控制器方面的任何代码都可能使这更容易理解。

更新

我不完全确定Venue模型的样子,但这里可能会发生两件事。

  • 在Venue的构造函数中(应该从您的存储库传递列表), 在添加之前,Venue内部的List属性永远不会被实例化 中的项目。

  • 存储库未返回任何值。

显示Venue类及其构造函数的附加代码可能会有所帮助。

答案 1 :(得分:1)

确保在部分视图中引用的模型中的任何属性都不为null。我有类似的情况,传递到局部视图的模型有一些空字段,当渲染时,抛出NullReferenceExceptions。

E.g。

之类的东西
<%: Model.Property %> 

或者,尤其是:

<%: Model.Property.ChildProperty %>

即。如果“Property”为null,则尝试访问“ChildProperty”将抛出NulLReference异常。