【问题标题】:View Not being rendered on installation of T4MVC查看安装 T4MVC 时未呈现
【发布时间】:2011-08-10 19:57:21
【问题描述】:

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

Tools -> Library Package Manager -> Package Manager Console

PM> install-package T4MVC

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

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

对可能发生的事情有什么想法吗?

【问题讨论】:

  • 我想通了。这个控制器有一个名为“View”的动作。这让 T4MVC 感到困惑。学过的知识。如果您想将其与 T4MVC 一起使用,请不要将操作称为“视图”。

标签: c# .net t4mvc


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

【讨论】:

  • 是的,我确实收到了警告。如果 T4MVC 可以处理它会很棒,但最后我认为没有一个名为 View 的操作可能是一个更好的主意。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 2011-10-09
  • 2022-11-10
  • 2021-09-25
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
相关资源
最近更新 更多