我只是创建了一个空的 MVC2 项目。添加一个区域和一个控制器以及一个视图。将 T4MVC 文件包含到项目中并运行自定义工具。
除了区域中视图的 ViewNames 之外,所有内容都会生成。
我的树结构:
领域
- 我的地盘
- 控制器
- 我的测试控制器.cs
- 意见
- 我的测试
- MyTestView.aspx
- MySecondTestView.aspx
- 我的测试
- 控制器
如您所见,我可以直接在 Views 文件夹以及控制器命名的文件夹中查看视图。
有没有人经历过这样的事情?
我只是创建了一个空的 MVC2 项目。添加一个区域和一个控制器以及一个视图。将 T4MVC 文件包含到项目中并运行自定义工具。
除了区域中视图的 ViewNames 之外,所有内容都会生成。
我的树结构:
领域
如您所见,我可以直接在 Views 文件夹以及控制器命名的文件夹中查看视图。
有没有人经历过这样的事情?
T4MVC 绝对支持访问区域中的视图。我刚刚在一个新项目上尝试了以下内容:
在那之后,我可以写:
public virtual ActionResult Index()
{
return View(Views.Index);
}
或者
public virtual ActionResult Index()
{
return View(MVC.Stuff.Foo.Views.Index);
}
ASP.NET MVC 2 开箱即用,使用命名约定将视图链接到控制器操作。这些约定允许它为控制器中的操作找到默认视图。
例如,MyTestController.cs 将具有操作。可以说它只有一个,测试。
默认情况下,MVC 框架会在文件夹 MyArea/Views/MyTest 中查找名为 Test.aspx 的视图
如果在那里找不到,它将在 /MyArea/Views/Shared 下查找视图 Test.aspx
然后它将在 /Views/Shared 中查找。
[我可能遗漏了一个位置,肯定有4个,但是不记得另一个了……无论如何,原则是成立的]
如果它在任何这些位置都找不到 Test.aspx,它会抱怨。
你似乎在与这些约定作斗争。这会让你陷入各种复杂的境地。所以最好读一本关于 MVC 的好书,真正了解 MVC 是如何工作的基础知识。