填充基本视图模型的最佳方法

Mys*_*elf 6 model-view-controller design-patterns viewmodel asp.net-mvc-3

我知道有两种方法可以填充基础模型视图:

第一种方法,使用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;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

第二种方式,属性获取访问者:

public abstract class BaseViewModel
{
    public string CurrentUser
    {
        get
        {
            return HttpContext.Current.Request.Cookies["CurrentUser"].Value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

哪种方式更好?我缺少任何利弊?

Bra*_*don 2

我会用第二种方法,因为它会更清楚模型的值是什么CurrentUser,而不必在控制器中摸索。