Asp.net mvc T4MVC未拾取区域中的视图(ASP.NET MVC 3 RTM)
T4MVC在任何地方都能正常工作,但在某些地区除外 在区域中,它拾取控制器和动作,但不拾取视图 因此,我无法在控制器中写入:Asp.net mvc T4MVC未拾取区域中的视图(ASP.NET MVC 3 RTM),asp.net-mvc,asp.net-mvc-3,t4mvc,Asp.net Mvc,Asp.net Mvc 3,T4mvc,T4MVC在任何地方都能正常工作,但在某些地区除外 在区域中,它拾取控制器和动作,但不拾取视图 因此,我无法在控制器中写入: return View(MVC.MyArea.MyController.Views.MyView); 在这些区域之外,我可以写: return View(Views.MyOtherView); 我还可以参考我的区域控制器中的操作: MVC.MyArea.MyController.MyAction() 换言之: a。我可以得到我想要的任何东西,如果它不在某个地区 b。
return View(MVC.MyArea.MyController.Views.MyView);
在这些区域之外,我可以写:
return View(Views.MyOtherView);
我还可以参考我的区域控制器中的操作:
MVC.MyArea.MyController.MyAction()
换言之:
a。我可以得到我想要的任何东西,如果它不在某个地区
b。我可以在我的区域控制器中进行操作
c。但我无法在我的领域获得我的观点
有什么问题吗
短暂性脑缺血发作
编辑:
问题是让T4MVC重新运行(请参阅David Ebbo的答案和我的“答案”)。您所拥有的应该可以工作,我通过以下方式验证了这一点:
- 创建新的MVC3应用程序并添加最新的T4MVC 2.6.40(通过nuget)
- 添加名为MyArea的区域
- 添加名为MyController的控制器
- 添加名为MyView的视图
- 确保重新运行T4MVC.tt自定义工具
namespace Mvc3Application.Areas.MyArea.Controllers {
public partial class MyController : Controller {
public virtual ActionResult Index() {
return View(Views.MyView);
}
}
}
或
请注意,在第二种情况下,标记使用'My'而不是'MyController',这是它始终工作的方式
请尝试在干净的应用程序中执行这些步骤,看看它是否有效。我认为我的问题是由T4MVC未重新运行引起的。因此(我推测)T4MVC不会更新以反映您项目中的变化。例如,更改控制器中动作的参数。或(针对此问题)添加新视图 关于让自己重新运行的T4MVC文档很模糊,但它指向了一个名为Chirpy的VS插件 Chirpy安装,然后您必须进入配置程序。您可以通过打开Visual Studio,然后转到工具>>选项并选择Chirpy选项来完成此操作 如图所示: 我必须添加模板名T4MVC.tt位才能让它工作。不确定这是否必要或原因。但现在一切都很好
如果有更好的方法,请告诉我。是的,这很有效。对我的原始项目同样有效的是卸载并重新安装t4mvc软件包(我已经安装了版本2.6.40,因此没有版本问题)。因此,似乎模板没有自动重新运行。我能做些什么来强迫这一切?
namespace Mvc3Application.Areas.MyArea.Controllers {
public partial class MyController : Controller {
public virtual ActionResult Index() {
return View(MVC.MyArea.My.Views.MyView);
}
}
}