我有一个相当大的ASP.NET MVC 2项目,它将控制器分成另一个项目。我想在父视图中创建一个视图。
我有ParentController
和ChildController
,都继承自“Controller”。我想在“ParentController”中创建一个名为“ChildController”的文件夹,并从那里添加Views。
显然,这会抛出“无法找到资源”错误。
我需要编辑控制器吗?这是路由限制吗?
(如何)可以实现这一目标?
答案 0 :(得分:0)
我不确定我理解您的要求,但提供自定义视图搜索路径是通过编写自定义ViewEngine
类来完成的。
但是拥有多个控制器(无论它们如何被继承)应始终是Views
文件夹中每个控制器的文件夹。
我猜你正在使用Html.RenderAction
方法。没关系。您的View文件夹结构仍应为:
/Views
/Parent
/Index.aspx
/Whatever.aspx
/Child
/SubView.ascx <- this one here is a partial view if you use RenderAction()
答案 1 :(得分:0)
默认情况下,在Views / {ControllerPrefix}文件夹中检查视图。然后在Views / Shared文件夹中。
您的文件夹需要与控制器的前缀相匹配,即:
ChildController
将从
中提取视图/views/child/
您还可以根据来自任何控制器的应用程序路径直接引用该视图:
~/views/child/subview.ascx