当前位置:  开发笔记 > 编程语言 > 正文

asp.net MVC RC1 RenderPartial ViewDataDictionary

如何解决《asp.netMVCRC1RenderPartialViewDataDictionary》经验,为你挑选了4个好方法。

我正在尝试ViewData使用ViewDataDictionary.将主页中的对象传递给视图用户控件.

问题是,ViewDataDictionary无论我尝试使用哪种方式,都不会在视图用户控件中返回任何值.

下面的示例代码仅使用匿名对象进行演示,尽管此方法或传递ViewData对象都不起作用.

以下是RenderPartial我正在尝试使用的辅助方法:

<% Html.RenderPartial("/Views/Project/Projects.ascx", ViewData.Eval("Projects"), new ViewDataDictionary(new { Test = "Mark" })); %>

并在我看来用户控制我执行以下操作:

<%= Html.Encode(ViewData["Test"]) %>

为什么这不会返回任何东西?

谢谢你的帮助.

编辑:

我能够毫无问题地传递和访问强类型模型.这是ViewDataDictionary我试图用来传递模型之外的单个值...



1> 小智..:

这是我见过的最好的方法:

<% Html.RenderPartial("/Views/Project/Projects.ascx", Model, new ViewDataDictionary{{"key","value"}});%>

它可能有点hackish,但它让你通过和一些额外的数据发送模型.



2> Josiah Rudde..:

不知道是否还有人关心,但我使用KeyValuePair作为ViewDataDictionary.

 <% Html.RenderPartial("ItemRow", item, new ViewDataDictionary{
        new KeyValuePair("url", url),
        new KeyValuePair("count", count),
        new KeyValuePair("className", className)
 }); %>

这样您就可以在一个语句中编写所有内容.可以在视图中访问KVP:

<%= ViewData["url"] %>
<%= ViewData["count"] %>
<%= ViewData["className"] %>

虽然我通过模型传递的内容可以通过Model访问.*



3> 小智..:

我正在使用ASP.Net MVC的RTM版本,但是:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", new ViewDataDictionary(new {Key = "Some value"})); %>

在部分视图中引用该值时,请尝试以下操作:

<%= ViewData.Eval("Key") %>

这对我来说似乎已经成功了.如果您这样做,它也会起作用:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", new {Key = "Some value"}); %>

希望这可以帮助.



4> Nick Berardi..:

你有没有尝试过:

<% Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData); %>

还有你在传递之前验证过ViewData ["Test"]在ViewData中吗?另请注意,将ViewData传递给部分控件时,保持模型相同非常重要.

缺口

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有