2009-08-31 68 views
2

在ASP.NET MVC网站的几乎每个页面中,我都使用有关用户的信息。这通常会在模型中传递关于他们工作的公司的信息以传递到视图,或者在View中确定用户可以使用其权限查看页面的哪些部分。在ASP.NET MVC中使用基本模型是好的还是坏主意?

而不是在每个模型中获取用户,有没有一种方法可以让用户数据始终可用?即我应该建立一个基础模型,还是让一些'主'控制器在ViewData中传递用户?

任何想法,甚至更好的任何代码将不胜感激。

回答

4

这是一个好主意。我在所有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 %> 
+1

+1我无法想象我会经历的痛苦而没有一个。 – kemiller2002 2009-08-31 14:19:38

+0

太棒了,让生活更轻松。 – 2009-08-31 17:58:39

0

只要你不重新发明轮子,这是一个好主意。人们经常在模型中看到很多信息(特别是,这里是ASP.NET用户,但人们似乎也复制了很多路线数据)已经可用于视图,而无需将其添加到模型中。但对于那些尚未在视图中的事物来说,这很好。

相关问题