在视图中创建一个视图
问题描述:
我有一个相当大的ASP.NET MVC 2项目,将控制器分成另一个项目。我想在父视图中创建一个视图。在视图中创建一个视图
我有ParentController
和ChildController
,都从“控制器”继承。我想在“ParentController”中创建一个名为“ChildController”的文件夹并从那里添加Views。
显然,这会引发“无法找到资源”错误。
我需要编辑控制器吗?这是路由限制吗?
(How)可以实现这个吗?
答
默认情况下,视图/ {ControllerPrefix}文件夹中已选中视图。然后在Views/Shared文件夹中。
你的文件夹,需要匹配的控制器的前缀,即:
ChildController
将拉动从
/views/child/
视图您也可以直接引用基于从任何控制器它的应用程序路径上的观点:
~/views/child/subview.ascx
答
我不确定我明白你在问什么,但是提供自定义视图搜索路径是通过编写一个自定义的ViewEngine
类完成的。
但是有多个控制器(不管它们如何被继承)应该始终是Views
文件夹中每个控制器的文件夹。
我想你使用的是Html.RenderAction
方法。没关系。您的视图文件夹结构仍应为:
/Views
/Parent
/Index.aspx
/Whatever.aspx
/Child
/SubView.ascx <- this one here is a partial view if you use RenderAction()