除了地区以外,T4MVC在各地工作正常。
在“区域”中,它会选择“控制器”和“操作”,但不会选择“视图”。
所以,我不能写在我的控制器中:
return View(MVC.MyArea.MyController.Views.MyView);
在地区之外,我可以写:
return View(Views.MyOtherView);
我还可以参考区域控制器中的操作:
MVC.MyArea.MyController.MyAction()
换句话说:
一个。如果它不在某个区域,我可以得到任何我想要的东西。
湾我可以在我的区域控制器中获取动作。
℃。但是我无法在我的区域获得我的观点。
问题是什么?
TIA
问题是让T4MVC重新运行(参见David Ebbo的答案和我的“答案”)。
答案 0 :(得分:1)
你有什么应该工作,我通过以下方式验证:
之后,我可以写:
namespace Mvc3Application.Areas.MyArea.Controllers {
public partial class MyController : Controller {
public virtual ActionResult Index() {
return View(Views.MyView);
}
}
}
或
namespace Mvc3Application.Areas.MyArea.Controllers {
public partial class MyController : Controller {
public virtual ActionResult Index() {
return View(MVC.MyArea.My.Views.MyView);
}
}
}
请注意,在第二种情况下,“My”中的标记代替“MyController”,这是它始终有效的方式。
请尝试在干净的应用程序中执行这些步骤,看看它是否有效。
答案 1 :(得分:1)
我认为我的问题是由T4MVC没有重新运行引起的。结果(我推测)T4MVC不会更新以反映项目中的变化。例如,更改Controller中Action的参数。或者(特定于此问题)添加新视图。
关于让自己重新运行的T4MVC文档含糊不清,但是你指的是一个名为Chirpy的VS添加。
安装Chirpy,然后你必须进行配置。您可以通过打开Visual Studio,然后转到工具>>来执行此操作。选项并选择Chirpy选项。
见图片:
我必须添加模板名称T4MVC.tt位才能使其正常工作。不确定这是否必要或为什么。但现在一切正常。
如果有更好的方法,请告诉我。