Asp.net mvc 在ASP.NET MVC 3的子文件夹中添加视图
我正在从事ASP.NETMVC3项目。为了简单起见,我想在子文件夹中划分控制器、模型和视图。我可以用控制器和模型来实现这一点,但是当我创建一个视图时,它会自动创建到根文件夹Asp.net mvc 在ASP.NET MVC 3的子文件夹中添加视图,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我正在从事ASP.NETMVC3项目。为了简单起见,我想在子文件夹中划分控制器、模型和视图。我可以用控制器和模型来实现这一点,但是当我创建一个视图时,它会自动创建到根文件夹视图,有什么方法可以解决这个问题吗 我会创造 模型类as Models/Finance/Bank.cs Models/Finance/Finance.cs Models/Production/Production.cs 控制器as Controllers/Finance/BankController/Create Contr
视图
,有什么方法可以解决这个问题吗
我会创造
模型类as
Models/Finance/Bank.cs
Models/Finance/Finance.cs
Models/Production/Production.cs
控制器as
Controllers/Finance/BankController/Create
Controllers/Finance/BudgetController/Create
Controllers/Production/ProcessController/Create
但当我试图为上述操作创建视图时,它创建了
Views/Bank/Create.aspx
Views/Budget/Create.aspx
Views/Process/Create.aspx
我想它应该是这样的
Views/Finance/Bank/Create.aspx
Views/Finance/Budget/Create.aspx
Views/Prodution/Process/Create.aspx
是否有任何方法可以在为控制器和模型创建的子文件夹中创建视图?谢谢 模型和控制器是编译的源文件。它们被编译成DLL,因此,它们可以放在项目中的任何地方,这不会有什么区别。这些类不知道它们在文件系统中的位置,因为一旦编译,它们就不存在于文件系统中 另一方面,观点是不同的。它们是部署到服务器并在运行时加载和解析的文本文件,因此框架必须知道在哪里可以找到它们
该工具将始终在~\views\Controller文件夹(或~Areas\AreaName\Controller文件夹)中创建视图。在此之后,您可以将它们移动到任意位置,但必须为View()方法(包括.cshtml)提供整个文件夹路径。或者,您必须实现一个自定义的ViewEngine,在需要的位置设置搜索路径。视图的命名取决于控制器的名称,您应该遵循该规则。
如果您想创建
Views/Admin/create
,那么您的CustomerController.cs
应该命名为AdminController.cs
以下步骤对我有用
视图中创建所需的子文件夹(根文件夹)。就我而言,是金融与生产
视图中自动创建的文件夹拖动到相应的子文件夹中即可。在我的案例中,银行
和预算
转入财务
和流程
转入生产
返回
查看(~/Views/Finance/Bank/Create.aspx”)
返回
查看(~/Views/Finance/Budget/Create.aspx”)
return
View(“~/Views/Production/Process/Create.aspx”)
未来访客:使用区域
这里有些不对劲。
CustomerController
不需要两个文件夹。这是@Mystere-Man建议的,没有理由再写一个答案,只需将他的答案标记为acceptedIt也适用于razor cshtml。示例:“返回视图(“~/Views/SomeSubFolder/Login.cshtml”);这是可行的,但如果我们有viewmodel pass来查看呢?这如何转化为子客户?例如,Views/Admin/Customers/Create
,其中我有一个AdminController
和一个CustomerController
子客户。这并不是回答最初的问题。嗨,我可以将两者结合起来吗?例如,大多数人都会使用~\Views\Controller
。在一些情况下,我需要使用~Areas\AreaName\Controller
。这样可以吗?如果我使用~Areas\AreaName\Controller
,我是否需要提供View()方法的整个文件夹路径?