Razor - написать уникальный тег в <body> - PullRequest
1 голос
/ 18 марта 2012

Я придерживаюсь этой основанной на Dom маршрутизации для запуска определенного javascript на каждой странице http://viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution

Поэтому необходимо каждый раз записывать уникальный атрибут данных в тег при загрузке страницы

например.

<body data-controller="Home" data-action="Index">

Как лучше всего использовать эту логику для просмотра бритвы?

Тег body находится в моем файле главной страницы (_layout.cshtml). И он должен динамически отображать это на каждой странице

Думал о переопределении OnActionExecuting в базовом контроллере, чтобы он вводил текущий контроллер и имя действия в ViewBag. Затем ссылка на свойства ViewBag в моем _layout.cshtml

Имеет ли это смысл или есть более подходящее место для этой функции?

1 Ответ

1 голос
/ 18 марта 2012

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

<body 
   data-controller="@(ViewContext.RequestContext.RouteData.Values["controller"])" 
   data-action="@(ViewContext.RequestContext.RouteData.Values["action"])">

Для установки других "глобальных свойств" на ViewBag OnActionExecuting (может быть объединен с базовым классом или с помощью пользовательского фильтра) является правильным местом.

...