使用.Net MVC2,我想将子视图中的信息传递给其父视图。最初,我认为我可以使用ViewData
集合,但这似乎只能在一个方向上起作用:从父母到孩子。
下面是我尝试将数据从子视图传递回父视图的简化版本。运行Visual Studio调试器时,我会在单步调试父视图和子视图时看到ViewData字典。但是应该在子视图中将项添加到字典的语句似乎不起作用。返回父视图后,ViewData字典显示与调用子视图之前相同。
在父视图中:
<div>
<%
List<People> ManagerList = ViewData["ManagerList"];
ViewData["Section"] = "Managers";
Html.RenderPartial("OrgTable", ManagerList);
bool didTableRenderAnyRecords = ViewData["TableResult"];
%>
</div>
...
<div>
<%
if (!didTableRenderAnyRecords) {
%>
<p>Sorry, no records found</p>
<%
}
%>
</div>
在子视图中
<table>
<thead> ... </thead>
<tbody>
<%
bool validRecordDisplayed = false;
foreach(var manager in Model) {
if (manager != null) {
validRecordDisplayed = true;
%>
<tr> ... </tr>
<%
}
}
ViewData["TableResult"] = validRecordDisplayed;
%>
</tbody>
</table>
答案 0 :(得分:0)
我认为你可以在这里使用ViewBag.SomeProperty。您也可以尝试使用MVC部分(虽然我不确定它们是否在MVC2中可用)。