【问题标题】:Pass Viewdata as member from other viewdata to RenderPartial makes the first null将 Viewdata 作为成员从其他 viewdata 传递给 RenderPartial 使第一个 null
【发布时间】:2008-10-24 12:18:51
【问题描述】:

强类型SearchViewData 有一个名为Colors 的字段,而它又是ColorViewData。 在我的/Colors.mvc/search 中,我根据给定的搜索条件填充了这个viewData.Model.Colors。 然后,基于几个因素,我呈现一组用户控件中的一个,这些控件能够使用ColorViewData 呈现自身。
所以我最终会得到:

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

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

建议?

【问题讨论】:

    标签: asp.net-mvc renderpartial


    【解决方案1】:

    可能是过载问题。您可以调用 RenderPartial(string, object, ViewDataDictionary) 来明确所有三个参数。

    我们计划更改的一件事是,如果您调用重载 RenderPartial(string, object),我们会将当前 ViewDataDictionary 传递给部分。我们在 Beta 版中不这样做,但似乎这是一种非常常见的场景,并且会使这种方法更有用。

    【讨论】:

    • 谢谢,确实成功了。如果我正确理解您的帖子,我会误解传递的模型和视图数据之间的区别。 ViewData 不是已经包含对模型的引用吗?为什么我需要传递两次?
    【解决方案2】:

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

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

    【讨论】:

    • "xxx"?你在建什么样的网站;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多