Asp.net mvc 3 Razor视图引擎未搜索区域视图位置
我使用默认的RazorViewEngine和区域布局配置,但是当我导航到使用区域内视图的链接时。我收到一个错误,说明无法在以下位置找到和搜索视图:Asp.net mvc 3 Razor视图引擎未搜索区域视图位置,asp.net-mvc-3,razor,routes,viewengine,Asp.net Mvc 3,Razor,Routes,Viewengine,我使用默认的RazorViewEngine和区域布局配置,但是当我导航到使用区域内视图的链接时。我收到一个错误,说明无法在以下位置找到和搜索视图: ~/Views/Applications/Details.cshtml ~/Views/Applications/Details.vbhtml ~/Views/Shared/Details.cshtml ~/Views/Shared/Details.vbhtml 我觉得奇怪的是,视图引擎似乎没有尝试搜索区域位置。要让视图引擎搜索其所在区域
~/Views/Applications/Details.cshtml
~/Views/Applications/Details.vbhtml
~/Views/Shared/Details.cshtml
~/Views/Shared/Details.vbhtml
我觉得奇怪的是,视图引擎似乎没有尝试搜索区域位置。要让视图引擎搜索其所在区域的视图,我需要进行哪些调整
这是我用来定义我的区域的相关代码
Global.asax.cs
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteRegistrar.RegisterRoutesTo(RouteTable.Routes);
}
ApplicationAreaRegistration.cs
private void RegisterRoutesTo(RouteCollection routes)
{
routes.MapRoute("Application_default", AreaName + "/{action}/{applicationId}",
new
{
controller = "Applications",
action = "Index",
applicationDomainId = UrlParameter.Optional
}, new { applicationId = @"\d+" });
}
Index.cshtml
@Html.RouteLink(item.Name, "Application_default", new { applicationId = item.Id, action = "Details" })
物理目录布局
Areas \
\Application
\Controllers
-ApplicationsController.cs
\Views
-Details.cshtml
-ApplicationAreaRegistration.cs
您的
MapRoute
似乎是个问题。尝试添加区域
声明
routes.MapRoute("Application_default",
AreaName + "/{action}/{applicationId}",
new
{
area= "Application",
controller = "Applications",
action = "Index",
applicationDomainId = UrlParameter.Optional
},
new { applicationId = @"\d+" });
另外,只需仔细检查Html.RouteLink
中可用的各种重载-您可能需要将该区域添加到RouteValues
集合中
`new {area="Application", applicationId = item.Id, action = "Details"}`
在区域外使用
RouteLink
时,是否确定正在调用ApplicationAreaRegistration.cs
中的registerOutesto()
?看来到你所在地区的路线还没有登记
我建议将您的MapRoute移回
ApplicationAreaRegistration.cs
中的RegisterArea
覆盖,这正是问题所在。谢谢你的帮助!