我的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]
对象引用尚未设置为对象实例。
答案 0 :(得分:2)
当您从浏览器打开它时,意味着您正在点击" PartialData"您已经传递模型的操作(即dataTable)。 但是,当您从另一个CSHTML加载局部视图时,您没有传递任何模型,它是null。尝试使用主视图中的@ Html.RenderAction,而不是使用@ Html.Partial。
我认为以下内容可以帮助您 -
@Html.RenderAction("PartialData")
答案 1 :(得分:0)
当在父
中调用部分视图时,您必须将模型传递给父视图public ActionResult ShowParentView() {
return view(dataTable);
}