我有一个ASP.NET MVC 3 Web应用程序。我最近使用包管理器安装了T4MVC模板:
Tools -> Library Package Manager -> Package Manager Console
PM> install-package T4MVC
这导致T4MVC.tt和T4MVC.tt.Settings.t4被包含在我的项目和一堆要自动生成的文件中(我在项目中有大约10个控制器)。在那之后,我尝试构建并运行我的项目,虽然我没有错误,但在其中一个控制器上,没有任何操作被渲染。这意味着浏览器正在提供一个完全空白的页面,而不是从关联视图生成的页面。所有其他控制器工作正常。
我真的无法辨别出这个控制器与其他工作正常的差异,就像我说的那样没有错误......当我在该控制器上执行操作时,只会提供一个空白页面。
关于可能发生的事情的任何想法?
答案 0 :(得分:1)
啊,是的,我明白会发生什么:对于每个动作,T4MVC也会生成一个没有任何参数的重载,因此在这种情况下,它将是一个名为View的方法,没有参数,然后隐藏MVC方法同名/签名。请注意,您可能会收到警告,例如
'Mvc3Application.Controllers.HomeController.View()' hides inherited member 'System.Web.Mvc.Controller.View()'.
Use the new keyword if hiding was intended.
我们可以在T4MVC中加入一些逻辑来涵盖这种特殊情况,但我会说如果你能避免这个动作名称,那就更好了:)