[英]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.