Как получить текущее viewName (не имя действия) в ASP .NET MVC3 (бета) - PullRequest
1 голос
/ 18 января 2012

Я хочу использовать Интернационализацию для этого, мне нужно текущее имя представления (не имя действия), чтобы я мог соответственно отображать конкретное представление для этой выбранной культуры.

protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
          string cultureName = Thread.CurrentThread.CurrentCulture.Name;
        //String ViewNameOnly= do something to get viewName 
         if (string.IsNullOrEmpty(ViewNameOnly))
            ViewNameOnly= filterContext.RouteData.Values["action"] + "." + cultureName;

    }

Ответы [ 2 ]

2 голосов
/ 19 января 2012
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    ViewResultBase view = filterContext.Result as ViewResultBase;
    if (view != null) {
        string viewName = view.ViewName;
    }
}
1 голос
/ 18 января 2012

filterContext.Result будет содержать результат, возвращаемый действием контроллера.Это ActionResult, который является базовым классом для различных результатов.Если это ViewResultBase (или один из его производных типов), то свойство ViewName даст вам то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...