将Viewdata作为成员从其他viewdata传递给RenderPartial使第一个为null

时间:2008-10-24 12:18:52

标签: asp.net-mvc renderpartial

强类型SearchViewData有一个名为Colors的字段,它依次为ColorViewData。 在我的/Colors.mvc/search中,我根据给定的搜索条件填充此viewData.Model.Colors。 然后,根据几个因素,我渲染一组能够使用ColorViewData呈现自身的用户控件。
所以我最终会:

<%Html.RenderPartial("~/Views/Color/_ColorList.ascx", ViewData.Model.Colors);%>

这曾经很好用,但自从升级到beta1后,我的用户控件总是以viewdata = null;

结束

建议?

2 个答案:

答案 0 :(得分:3)

可能是过载问题。您可以调用RenderPartial(string,object,ViewDataDictionary),它使所有三个参数都显式。

我们计划更改的一件事是如果调用重载RenderPartial(string,object),我们会将当前的ViewDataDictionary传递给partial。我们在测试版中没有这样做,但似乎这是一种非常常见的情况,并且会使这种方法更有用。

答案 1 :(得分:0)

注意到同样的事情,我用以下内容修复了它,虽然我不确定它是否是“正确”的解决方案:

<% Html.RenderPartial("xxx", new ViewDataDictionary(ViewData.Model.Colors)); %>