C# MVC局部视图中的空对象异常

C# MVC局部视图中的空对象异常,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我有一个称为_News的局部观点,当它自己调用时,它会按预期工作 当我使用以下代码从另一个视图调用它时: <div> @html.Partial("_News"); </div> 在视图中的这一行代码处: @foreach (var item in Model) { 视图引用模型的位置。我意识到这意味着视图没有从控制器传递给模型,但我不明白为什么 该控制器称为NewsController,位于控制器中。该视图称为_News,位于共享视图中。调用分部视图的视图是默认

我有一个称为_News的局部观点,当它自己调用时,它会按预期工作

当我使用以下代码从另一个视图调用它时:

<div>
  @html.Partial("_News");
</div>
在视图中的这一行代码处:

@foreach (var item in Model) {
视图引用模型的位置。我意识到这意味着视图没有从控制器传递给模型,但我不明白为什么


该控制器称为NewsController,位于控制器中。该视图称为_News,位于共享视图中。调用分部视图的视图是默认的主页/索引页。

如果分部需要从模型访问数据,则需要将模型传递到
partial()
方法:

@Html.Partial("_News", Model)
MSDN:

编辑:


根据您下面的评论,我认为您实际上是在追求这一点:-这允许您调用控制器操作并将结果呈现到当前视图中。

如果您的partial需要访问模型中的数据,则需要将模型传递到
partial()
方法:

@Html.Partial("_News", Model)
MSDN:

编辑:

根据您下面的评论,我认为您实际上是在追求这个:-这允许您调用控制器操作并将结果呈现到当前视图中。

您的局部模型是主视图模型的子集还是属性?我之所以说可以,是因为,在铁森看来,你几乎可以处理部分人想要的模型和观点想要的模型之间的任何差异。。。但是,如果您的部分需求的模型与您的视图所需的模型相差甚远,那么我通常会认为我的两个模型没有被彻底/正确地清除(基本上是:“我是否试图在同一页上表示太多的东西或不相关的东西?”)

此外,如果可以使局部的模型成为主视图模型的属性,以便可以像下面这样将模型传递到局部:

@Html.Partial("_News", Model.SomePropertyThatFulfillsTheDataSourceOfThePartial)
然后,如果您需要提交表单,这也会使模型绑定更容易。

您的部分模型是主视图模型的子集还是属性?我之所以说可以,是因为,在铁森看来,你几乎可以处理部分人想要的模型和观点想要的模型之间的任何差异。。。但是,如果您的部分需求的模型与您的视图所需的模型相差甚远,那么我通常会认为我的两个模型没有被彻底/正确地清除(基本上是:“我是否试图在同一页上表示太多的东西或不相关的东西?”)

此外,如果可以使局部的模型成为主视图模型的属性,以便可以像下面这样将模型传递到局部:

@Html.Partial("_News", Model.SomePropertyThatFulfillsTheDataSourceOfThePartial)

然后,如果需要提交表单,这也会使模型绑定更容易。

这可能是因为您试图取消对空引用的引用。这可能是由于您试图取消对空引用的引用。在视图的代码中的某个地方。嗨,它使用了与调用它的视图完全不同的模型。它不是从自己的控制器传递模型吗?
Partial()
方法不调用控制器操作,因此不是。您可能想这样做:是的,但最好将其添加到答案中。您好,它使用的模型与调用它的视图完全不同。它不是从自己的控制器传递模型吗?
Partial()
方法不调用控制器操作,因此不是。您可能想这样做:是的,但最好将其添加到答案中。