Как я могу получить область (или путь), где строится вид?
ПРОБЛЕМА:
Я настраиваю шаблоны MVC 5 для просмотра лесов.
Мне нужно иметь возможность получить название области для области, где создается вид.
Например, я хочу получить возможность установить значение для переменной areaName для параметров действия Url:
Url.Action("Index", "<#= ViewDataTypeShortName#>s", new { area = "<#= areaName #>", page<#= ViewDataTypeShortName#>s = x }), ViewContext, NormalizePath("~/Areas/<#= areaName #>/Views/<#= ViewDataTypeShortName#>s/"))
В контроллере я могу сделать:
<#
var areaName = GeneratedTextTransformation.AreaName;
#>
Но в шаблоне View T4 это недоступно.
Итак, как я могу получить название области, где я создаю представление?
РЕДАКТИРОВАТЬ:
Поскольку MVC использует соглашение о конфигурации, я мог бы получить область, если бы у меня был способ получить путь к создаваемому файлу View (как в:
/Areas/[Area Name]/Views/
Таким образом, вопрос сводится к:
ВОПРОС:
Как мне получить путь к тому, где представление создается скаффолдингом T4 ASP.NET MVC?
1 ответ
Я решил это, используя свойство AreaName (доступно в шаблоне T4 для контроллера) в ViewBag.AreaName и читая это в представлении.
НЕ красиво, но это будет работать.
Однако я гораздо раньше узнаю, как получить доступ к области, в которой создаются файлы, в моем коде T4. Смотрите редактирование на мой вопрос.