在ASP.NET MVC网站的几乎每个页面中,我都使用有关用户的信息。这通常会在模型中传递关于他们工作的公司的信息以传递到视图,或者在View中确定用户可以使用其权限查看页面的哪些部分。在ASP.NET MVC中使用基本模型是好的还是坏主意?
而不是在每个模型中获取用户,有没有一种方法可以让用户数据始终可用?即我应该建立一个基础模型,还是让一些'主'控制器在ViewData中传递用户?
任何想法,甚至更好的任何代码将不胜感激。
在ASP.NET MVC网站的几乎每个页面中,我都使用有关用户的信息。这通常会在模型中传递关于他们工作的公司的信息以传递到视图,或者在View中确定用户可以使用其权限查看页面的哪些部分。在ASP.NET MVC中使用基本模型是好的还是坏主意?
而不是在每个模型中获取用户,有没有一种方法可以让用户数据始终可用?即我应该建立一个基础模型,还是让一些'主'控制器在ViewData中传递用户?
任何想法,甚至更好的任何代码将不胜感激。
这是一个好主意。我在所有MVC项目中始终使用MasterModel。
为此,您需要继承所有视图模型,并强制将MasterPage键入MasterModel。
public class MasterModel
{
string UserName { get; set; }
}
public class HomeModel : MasterModel
{
}
public class NewsModel : MasterModel
{
}
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MasterModel>" %>
User name: <%= Model.UserName %>
只要你不重新发明轮子,这是一个好主意。人们经常在模型中看到很多信息(特别是,这里是ASP.NET用户,但人们似乎也复制了很多路线数据)已经可用于视图,而无需将其添加到模型中。但对于那些尚未在视图中的事物来说,这很好。
+1我无法想象我会经历的痛苦而没有一个。 – kemiller2002 2009-08-31 14:19:38
太棒了,让生活更轻松。 – 2009-08-31 17:58:39