如何将数据从子视图传递到MVC2中的父视图?

时间:2014-03-04 18:01:24

标签: c# asp.net-mvc-2

使用.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>

1 个答案:

答案 0 :(得分:0)

我认为你可以在这里使用ViewBag.SomeProperty。您也可以尝试使用MVC部分(虽然我不确定它们是否在MVC2中可用)。

相关问题