繁体   English   中英

ASP.NET MVC部分视图帮助

[英]ASP.NET MVC Partial View Help

我在我的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()会抛出错误:/

谢谢。

您提到的错误消息:

Object reference not set to an instance of an object.

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

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

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

更新:

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

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

    要么

  • 存储库不返回任何值。

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

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

比如像

<%: Model.Property %> 

或者,特别是:

<%: Model.Property.ChildProperty %>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM