Мы специально не раскрыли способ получения имени текущей области из запроса MVC, поскольку «область» - это просто атрибут маршрута. Это ненадежно для других целей. В частности, если вы хотите, чтобы ваши контроллеры имели некоторый атрибут (вспомните абстрактный термин, а не класс System.Attribute), который может использоваться помощником, тогда эти атрибуты должны быть найдены на самих контроллерах, не включен площадь .
В качестве практического примера, если вы хотите, чтобы какая-то логика (например, фильтр действий) работала до каких-либо контроллеров в определенной области, вы должны связать фильтр действий с этими контроллерами напрямую. Самый простой способ сделать это - приписать некоторый MyAreaBaseController с этим фильтром, а затем иметь каждый контроллер, который вы логически хотите связать с этой областью, для подкласса этого типа. Любое другое использование, такое как глобальный фильтр, который для принятия решения обращается к RouteData.DataTokens ["area"], не поддерживается и потенциально опасно.
Если вам действительно нужно получить имя текущей области, вы можете использовать RouteData.DataTokens["area"]
, чтобы найти его.