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

ПРОБЛЕМА:

Я настраиваю шаблоны 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 использует соглашение вместо конфигурации, я мог бы получить область, если бы у меня был способ получить путь к создаваемому файлу представления (например:

/Areas/[Area Name]/Views/

Таким образом, вопрос сводится к следующему:

ВОПРОС:

Как получить путь к тому месту, где создается представление с помощью каркаса T4 ASP.NET MVC?


person awrigley    schedule 27.05.2014    source источник


Ответы (1)


Я решил эту проблему, используя свойство AreaName (доступное в шаблоне T4 для контроллера) в ViewBag.AreaName и прочитав его в представлении.

НЕ красиво, но работать будет.

Однако я бы гораздо раньше узнал, как получить доступ к области, в которой создаются файлы, в моем коде T4. Смотрите редактирование моего вопроса.

person awrigley    schedule 28.05.2014