Asp.net mvc ASP.NET MVC部分视图帮助

Asp.net mvc ASP.NET MVC部分视图帮助,asp.net-mvc,Asp.net Mvc,我在asp.net mvc解决方案中创建了一个局部视图,该视图将显示数据库中的项目列表。但是,我收到一个错误消息:对象引用未设置为对象的实例。 我不知道为什么会这样,因为就我而言,一切都很好。项目列表是通过VenuesController控制的场地,但局部视图位于/shared/文件夹中,而不是视图的/viouses/文件夹中。asp.net是否会抱怨,因为它没有将两者链接在一起 这是我在VenuesController中的代码: // // GET: /Venues/ public Acti

我在asp.net mvc解决方案中创建了一个局部视图,该视图将显示数据库中的项目列表。但是,我收到一个错误消息:
对象引用未设置为对象的实例。

我不知道为什么会这样,因为就我而言,一切都很好。项目列表是通过VenuesController控制的场地,但局部视图位于/shared/文件夹中,而不是视图的/viouses/文件夹中。asp.net是否会抱怨,因为它没有将两者链接在一起

这是我在VenuesController中的代码:

//
// GET: /Venues/

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

public ActionResult VenuesList()
{
    return PartialView("VenuesList",_repository.ListAll());
}
Index()工作正常,并在/Views/victions/Index.aspx中显示数据,但VenuesList()抛出错误:/


谢谢。

您提到的错误消息:

Object reference not set to an instance of an object.
通常在引用集合的属性且该属性为空时处理。您可能希望确保项目列表为:

  • 不是空的
  • 正确实例化
来自控制器方面的任何代码都可能使这一点更容易理解

更新:

我不完全确定场馆模型是什么样子,但是这里可能会发生两件事

  • 在场馆的建造商中(应从您的存储库中传递列表), 场馆内的列表属性在添加 中的项目

  • 存储库未返回任何值


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

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

比如说

<%: Model.Property %> 

或者,特别是:

<%: Model.Property.ChildProperty %>


i、 e.如果“Property”为null,则尝试访问“ChildProperty”将引发NulLReference异常。

如果局部视图位于/Views/Shared/文件夹内,则会使用哪个控制器?是否将模型传递给局部视图?无论填充视图的模型是什么,以及构建视图的操作都会很有帮助。是的,我正在将模型传递给视图,如标题中所示:
,但我不确定我将使用哪个控制器,因为视图位于共享文件夹中,而不是场馆文件夹中,所以我的操作应该位于哪个控制器中?也许吧张贴场地类和它的构造器以提供帮助。通常,您的一个控制器中会有一个操作,该操作将填充您的局部视图-它可能类似于:public ActionResult[NameOfYourView]([arguments]),它将返回类似于:return PartialView([model]);但是哪个控制器呢?由于VenuesController控制此处的视图:/views/victions/right?并且不会与/views/Shared/文件夹内的视图对话,或者会吗?如果找不到该视图,则不会出现对象引用异常。您是否在控制器操作中设置了断点,以查看是否存在任何问题。当找不到视图时,您将得到类似以下错误-未找到视图“索引”或其主视图。已搜索以下位置:~/Views/Search/Index.aspx~/Views/Search/Index.ascx~/Views/Shared/Index.aspx~/Views/Shared/Index.ascx说明:执行当前web请求期间发生未处理的异常。