У меня есть проблема, подобная той, описанной здесь: MVC T4 MvcTextTemplateHost и Специализированный "Контроллер" Шаблон T4, но надо надеяться, более простой.
У меня есть пользовательское Представление шаблоны (View.tt, Create.tt) для ASP.NET проект MVC. Я не могу выяснить, как получить название контроллера в этих шаблонах представления. mvcHost. ControllerName и mvcHost. ControllerRootName оба являются пустыми, в поле зрения обрабатывает по шаблону. Однако где-нибудь в конвейерном контроллере название известно, так как представление создается интервал папка ControllerName. Я хочу обратиться к нему в самом шаблоне.
А именно, я хочу генерировать HTML.ActionLink("Edit", MVC.
вместо HTML.ActionLink("Edit", "Edit", new {id = item.id})
Действительно ли возможно получить название контроллера в шаблоне View?
Я не думаю, что есть способ получить эту информацию в MVC 1.0 или MVC 2. Свойства ControllerRootName и ControllerName из хоста предназначены для шаблонов T4 контроллера, а не для шаблонов T4 представления.
Я посмотрю, можем ли мы добавить больше информации в хост T4, чтобы включить эти свойства при генерации представлений.
Причина того, что сгенерированный файл появляется в нужной папке, заключается в том, что система проекта MVC берет вывод шаблона T4 и помещает его туда. Сама система T4 не участвует в этом процессе.