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

C# 如何在MVC2中将数据从子视图传递到父视图?,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,使用.NETMVC2,我希望将信息从子视图传递到其父视图。起初,我认为我可以使用ViewData集合,但这似乎只在一个方向上起作用:从父对象到子对象 下面是我试图将数据从子视图传递回父视图的一个简化版本。运行VisualStudio调试器时,我会在单步遍历父视图和子视图时看到ViewData字典。但是,应该在子视图中将项添加到字典中的语句似乎不起作用。返回到父视图后,ViewData字典的显示方式与调用子视图前相同 在父视图中: ... 对不起,找不到任何记录 在子视图中 ... ...

使用.NETMVC2,我希望将信息从子视图传递到其父视图。起初,我认为我可以使用
ViewData
集合,但这似乎只在一个方向上起作用:从父对象到子对象

下面是我试图将数据从子视图传递回父视图的一个简化版本。运行VisualStudio调试器时,我会在单步遍历父视图和子视图时看到ViewData字典。但是,应该在子视图中将项添加到字典中的语句似乎不起作用。返回到父视图后,ViewData字典的显示方式与调用子视图前相同

在父视图中:


...
对不起,找不到任何记录

在子视图中


... 
... 

我想您可以在这里使用ViewBag.SomeProperty。您还可以尝试使用MVC部分(尽管我不确定这些部分是否在MVC2中可用)

ViewBag没有出现在VisualStudio的带有MVC2的2010 Intellisense中。看起来它是用MVC3添加的…你说得对。为什么不能将父代码移动到子级?对于这种特殊情况,我可以通过确保传递给子级的列表只包含非空条目来解决这个问题。然而,对于未来的情况,有没有办法在MVC2中将信息从子视图传递回其父视图?至于将父代码移动到子视图,上面的示例从实际代码中大大简化了。我有五个不同的列表,所以我没有重复几乎相同的代码,而是尝试对每一组数据使用一个视图,对每一行数据使用第三个子视图。我认为您的做法不完全正确。在将“ValidRecordDisplayed”传递到视图之前,您应该有一个ViewModel,其中将填充“ValidRecordDisplayed”。