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

Asp.net MVC用户控件ViewData

如何解决《Asp.netMVC用户控件ViewData》经验,为你挑选了1个好方法。

当控制器基于模型呈现视图时,您可以使用索引器从ViewData集合中获取属性(即ViewData ["Property"]).但是,我有一个共享用户控件,我尝试使用以下方法调用:

return View("Message", new { DisplayMessage = "This is a test" });

在我的消息控件上我有这个:

<%= ViewData["DisplayMessage"] %>

我认为这会正确渲染DisplayMessage,但是返回null.经过大量的修补,我终于创建了一个"MessageData"类,以便强烈键入我的用户控件:

public class MessageControl : ViewUserControl

现在这个电话有效:

return View("Message", new MessageData() { DisplayMessage = "This is a test" });

并可以这样显示:

<%= ViewData.Model.DisplayMessage %>

为什么在没有强大地键入用户控件的情况下,不会将DisplayMessage属性添加到ViewData(即ViewData ["DisplayMessage"])集合中?这是设计的吗?ViewData是否包含"DisplayMessage"的键是否有意义?



1> Haacked..:

方法

ViewData.Eval("DisplayMessage") 

应该适合你.

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