我知道有两种方法可以填充基本模型 View :
第一种方式,使用 OnActionExecuted 方法:
public abstract class BaseController : Controller
{
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var result = filterContext.Result as ViewResultBase;
if (result != null)
{
var model = filterContext.Controller.ViewData.Model as BaseViewModel;
if (model != null)
{
model.CurrentUser = HttpContext.Current.Request.Cookies["CurrentUser"].Value;
}
}
}
第二种方式,属性获取访问器:
public abstract class BaseViewModel
{
public string CurrentUser
{
get
{
return HttpContext.Current.Request.Cookies["CurrentUser"].Value;
}
}
}
哪种方式更好?我缺少什么优点/缺点?
最佳答案
我会采用第二种方式,因为它会更清楚 CurrentUser
的模型值是多少。是,而不必在 Controller 中四处寻找。
关于asp.net-mvc-3 - 填充基本 View 模型的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388551/