3

我只是创建了一个空的 MVC2 项目。添加一个区域和一个控制器以及一个视图。将 T4MVC 文件包含到项目中并运行自定义工具。

除了区域中视图的 ViewNames 之外,所有内容都会生成。

我的树结构:

领域

  • 我的地盘
    • 控制器
      • 我的测试控制器.cs
    • 意见
      • 我的测试
        • MyTestView.aspx
      • MySecondTestView.aspx

如您所见,我可以直接在 Views 文件夹以及控制器命名的文件夹中查看视图。

有没有人经历过这样的事情?

4

2 回答 2

2

T4MVC 绝对支持访问区域中的视图。我刚刚在一个新项目上尝试了以下内容:

  • 创建一个名为“Stuff”的区域
  • 在那里创建一个 Foo 控制器
  • 在该控制器中,右键单击 Index() 并要求它生成一个视图
  • 重新运行 T4MVC 自定义工具

在那之后,我可以写:

    public virtual ActionResult Index()
    {
        return View(Views.Index);
    }

或者

    public virtual ActionResult Index()
    {
        return View(MVC.Stuff.Foo.Views.Index);
    }
于 2010-10-29T17:15:04.177 回答
0

ASP.NET MVC 2 开箱即用,使用命名约定将视图链接到控制器操作。这些约定允许它为控制器中的操作找到默认视图。

例如,MyTestController.cs 将具有操作。可以说它只有一个,测试。

默认情况下,MVC 框架会在文件夹 MyArea/Views/MyTest 中查找名为 Test.aspx 的视图

如果在那里找不到,它将在 /MyArea/Views/Shared 下查找视图 Test.aspx

然后它将在 /Views/Shared 中查找。

[我可能遗漏了一个位置,肯定有4个,但是不记得另一个了……无论如何,原则是成立的]

如果它在任何这些位置都找不到 Test.aspx,它会抱怨。

你似乎在与这些约定作斗争。这会让你陷入各种复杂的境地。所以最好读一本关于 MVC 的好书,真正了解 MVC 是如何工作的基础知识。

于 2010-10-29T12:34:25.783 回答