ASP.NET MVC:如何处理必须转到每个视图的模型数据?

cod*_*ike 7 asp.net-mvc global models

因此,如果存在一些全局状态,MVC应用程序的每个视图都需要呈现...例如:IsUserLoggedOn并且UserName......有什么方法可以将信息传递给每个视图?

我知道视图的那一部分应该在母版页或部分视图中添加到其他视图中.但是什么是确保每次从所有相关控制器和操作将"全局"模型数据传递到视图的好方法?

cod*_*ike 6

在询问了这个之后,我发现史蒂夫桑德森的这篇好文章:http: //blog.stevensanderson.com/2008/10/14/partial-requests-in-aspnet-mvc/

他提出了三种不同的方法:

  • 使用基本控制器类或ActionFilter ViewData[]每次都将相关模型添加到集合中.我想有几个人已经提出过这样的事情了.

  • Html.RenderAction()在视图中使用......正如他所说:

如果有人告诉你内部子请求是坏的,因为它"不是MVC",那么就立刻将它们咬在脸上.同时问他们为什么他们仍然愿意使用Ajax,甚至是<IMG>标签,因为两者都是子请求的形式.

  • 使用"部分请求"(他在他的博客上提供此代码),允许一个控制器将对其他控制器的调用嵌套到一个嵌套ViewData结构中.