1

我有一个 ASP.NET MVC 3 Web 应用程序。我最近使用包管理器安装了 T4MVC 模板:

Tools -> Library Package Manager -> Package Manager Console

PM> install-package T4MVC

这导致 T4MVC.tt 和 T4MVC.tt.Settings.t4 被包含在我的项目中,并且一堆文件被自动生成(我在项目中有大约 10 个控制器)。在那之后,我尝试构建并运行我的项目,虽然我没有收到任何错误,但在其中一个控制器上,没有呈现任何操作。这意味着浏览器正在提供一个完全空白的页面,而不是从关联视图生成的页面。所有其他控制器工作正常。

我真的无法辨别这个控制器和其他工作正常的控制器之间有什么区别,就像我说的没有错误......当我在那个控制器上点击一个动作时,只提供了一个空白页面。

关于可能发生什么的任何想法?

4

1 回答 1

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 中添加一些逻辑来涵盖这种特殊情况,但我会说如果你可以避免那个动作名称,那就更好了:)

于 2011-08-11T01:04:50.743 回答