MVC PartialViewResult直接来自其他ActionResult

时间:2018-04-03 12:18:52

标签: .net asp.net-mvc razor partial-views

我的MVC中有一个PartialViewResult。 如果我直接在浏览器中打开它,我的模型中有数据。如果我在另一个视图中打开它,我没有数据。你能告诉我为什么吗?

控制器文件:

public PartialViewResult PartialData() {
  return PartialView(dataTable);
}

CSHTML文件:

@model System.Data.DataTable
@using System.Data;

@this.Model.Columns[0]

从另一个CSHTML打电话

@Html.Partial("RunningJobs")

此行的错误:@ this.Model.Columns [0]

  

对象引用尚未设置为对象实例。

2 个答案:

答案 0 :(得分:2)

当您从浏览器打开它时,意味着您正在点击" PartialData"您已经传递模型的操作(即dataTable)。 但是,当您从另一个CSHTML加载局部视图时,您没有传递任何模型,它是null。尝试使用主视图中的@ Html.RenderAction,而不是使用@ Html.Partial。

我认为以下内容可以帮助您 -

@Html.RenderAction("PartialData")

答案 1 :(得分:0)

当在父

中调用部分视图时,您必须将模型传递给父视图
public ActionResult ShowParentView() {
  return view(dataTable);
  }