我们的一些 Controller 变得太大了,所以我试图通过重构来简化它们:
Areas
Vehicles
Controllers
Cars
CarController.cs
Engines
PistonController.cs
...
Models
Views
Cars
EditCar.ascx
Engines
EditPiston.ascx
ShowPiston.ascx
Animals
...
(命名空间与文件夹结构匹配)
我尝试了一些变体,但无法让 MVC 推理识别我的项目结构。
局部 View 返回在 Action 中是什么样子的?即,具有简单 return PartialView(piston)
的 EditPiston 操作想要使用 View Views-> Engines -> EditPiston.ascx
,而不是 Views-> Cars->引擎 -> EditPiston.ascx
。
还有,我需要在注册区做什么?我需要设置任何特定路线吗?
最佳答案
开箱即用,您不能使用标准约定来执行此操作。
当然,您可以直接指定 View 位置。即:
return View("~/Areas/Views/Vehicles/Cars/Engines/Piston.cshtml");
另一种选择是创建您自己的派生自 RazorViewEngine 的 View 引擎,它会添加更多搜索路径,但是您应该知道这些路径将搜索每个页面呈现,并且如果您有大量搜索,可能会显着降低性能路径。
此处是创建您自己的 ViewEngine 的示例:
Can I specify a custom location to "search for views" in ASP.NET MVC?
关于c# - MVC 嵌套 Controller 和 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139154/