asp.net-mvc-3 - 填充基本 View 模型的最佳方法

标签 asp.net-mvc-3 model-view-controller design-patterns viewmodel

我知道有两种方法可以填充基本模型 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/

相关文章:

asp.net-mvc-3 - IIS卡在ASP.NET MVC 3应用程序中的特定路由请求上,除非在调试器中运行

c# - ASP.Net MVC 3 与 Oracle

javascript - 跟踪 View 状态信息的推荐方法是什么?

asp.net-mvc-3 - 如何只重新加载页面的一部分

c# - 在 MVC 中删除浏览器自动完成

javascript - 未捕获的语法错误 : Invalid regular expression flags -- what is going on?

asp.net-mvc - MVC 本地化的 ResourceManager 问题

c# - 试图弄清楚这段代码是否通过使用 Singleton 创造了任何好处

java - 复合策略模式 - java - 这段代码有多糟糕?

java - 将方法添加到android中的现有类