[英]MVC Nested Controllers and Views
我们的一些控制器变得太大了,所以我试图通过以下方式重构来简化它们:
Areas
Vehicles
Controllers
Cars
CarController.cs
Engines
PistonController.cs
...
Models
Views
Cars
EditCar.ascx
Engines
EditPiston.ascx
ShowPiston.ascx
Animals
...
(使用与文件夹结构匹配的命名空间)
我尝试了一些变化,但无法通过MVC推断来识别我的项目结构。
部分视图返回在动作中的样子是什么? 即,使用简单return PartialView(piston)
EditPiston动作return PartialView(piston)
想要使用视图Views-> Engines -> EditPiston.ascx
,而不是Views-> Engines -> EditPiston.ascx
Views-> Cars->Engines -> EditPiston.ascx
。
另外,我在RegisterArea需要做什么? 我需要设置哪些具体路线?
开箱即用,您无法使用标准惯例执行此操作。
当然,您可以直接指定视图位置。 即:
return View("~/Areas/Views/Vehicles/Cars/Engines/Piston.cshtml");
另一种选择是创建自己的从RazorViewEngine派生的View Engine,它可以添加更多搜索路径,但是您应该知道这些路径将搜索每个页面渲染,如果您有很多搜索路径,可能会显着降低性能。
创建自己的ViewEngine的示例如下:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.