Как я могу получить область (или путь), где строится вид?

ПРОБЛЕМА:

Я настраиваю шаблоны 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. Смотрите редактирование на мой вопрос.

Другие вопросы по тегам