Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Razor视图引擎未搜索区域视图位置_Asp.net Mvc 3_Razor_Routes_Viewengine - Fatal编程技术网

Asp.net mvc 3 Razor视图引擎未搜索区域视图位置

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 我觉得奇怪的是,视图引擎似乎没有尝试搜索区域位置。要让视图引擎搜索其所在区域

我使用默认的RazorViewEngine和区域布局配置,但是当我导航到使用区域内视图的链接时。我收到一个错误,说明无法在以下位置找到和搜索视图:

 ~/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
覆盖,这正是问题所在。谢谢你的帮助!