2011-08-10 2 views
1

У меня есть веб-приложение ASP.NET MVC 3. Я недавно установил шаблоны T4MVC с помощью менеджера пакетов:Вид Не отображается при установке T4MVC

Tools -> Library Package Manager -> Package Manager Console 

PM> install-package T4MVC 

Это вызвало T4MVC.tt и T4MVC.tt.Settings.t4 быть включены в мой проект и кучу файлов, которые будут autogenrated (у меня есть около 10 контроллеры в проекте). Сразу после этого я попытался создать и запустить свой проект, и, хотя у меня нет ошибок, на одном из контроллеров ни одно из действий не выполняется. Это означает, что браузер обслуживает только пустую страницу, а не созданную из соответствующего представления. Все остальные контроллеры работают нормально.

Я действительно не могу различить, какие различия между этим контроллером и другими, которые работают нормально, и, как я уже сказал, нет ошибок ... просто пустая страница подается, когда я нажимаю действие на этом контроллере.

Любые идеи относительно того, что может происходить?

+0

я понял это. У этого контроллера было действие под названием «Вид». Это путаное T4MVC. Урок выучен. Не вызывайте действие «Вид», если вы хотите использовать его с T4MVC. – floatingfrisbee

ответ

1

Ах да, я понимаю, что произойдет: для каждого действия T4MVC также генерирует перегруз без каких-либо параметров, поэтому в этом случае это будет метод под названием «Без каких-либо параметров», который затем скрывает метод MVC с тем же именем /подпись. Обратите внимание, что вы, вероятно, получили предупреждение, например.

'Mvc3Application.Controllers.HomeController.View()' hides inherited member 'System.Web.Mvc.Controller.View()'. 
Use the new keyword if hiding was intended. 

Мы могли бы поставить определенную логику в T4MVC, чтобы покрыть этот особый случай, но я бы сказал, что если вы можете просто избежать этого имя действия, это будет лучше :)

+0

Yup Я получил это предупреждение. Будет здорово, если T4MVC сможет справиться с этим, но в конце концов я думаю, что, вероятно, лучшая идея не имеет действия с именем View. Спасибо за Ваш ответ. – floatingfrisbee