Лучший способ заполнить базовую модель представления - PullRequest
6 голосов
/ 05 декабря 2011

Я знаю, что есть два способа заполнить базовую модель:

Первый способ с использованием метода 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;
            }
        }
    }

Второй способ, свойство get accessor:

public abstract class BaseViewModel
{
    public string CurrentUser
    {
        get
        {
            return HttpContext.Current.Request.Cookies["CurrentUser"].Value;
        }
    }
}

Какой путь лучше? какие плюсы / минусы мне не хватает?

1 Ответ

2 голосов
/ 05 декабря 2011

Я бы сделал это вторым способом, так как было бы немного более понятно, каково значение модели CurrentUser, без необходимости ковыряться в контроллерах.

...