Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 “如何离开我的将军”;路线;在特定的“模式”中操作代码时保持完整;面积“;用它自己的",;路线;?_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc “如何离开我的将军”;路线;在特定的“模式”中操作代码时保持完整;面积“;用它自己的",;路线;?

Asp.net mvc “如何离开我的将军”;路线;在特定的“模式”中操作代码时保持完整;面积“;用它自己的",;路线;?,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我将MVC3与C#一起使用 我在一个区域内有一个子应用程序,而主应用程序挂起项目的根 即: 子应用有自己的路由文件,具有以下默认路由: context.MapRoute( "SubApp_default", "SubApp/{controller}/{action}/{id}", new { controller = "Dashboard", action = "Index", id = UrlPar

我将MVC3与C#一起使用

我在一个区域内有一个子应用程序,而主应用程序挂起项目的根 即:

子应用有自己的路由文件,具有以下默认路由:

            context.MapRoute(
            "SubApp_default",
            "SubApp/{controller}/{action}/{id}",
            new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
        );
我有一个带有URL的通用菜单,它应该指向根控制器/操作。但是,当我在子应用中时,这些菜单URL会更改,例如:

/SubApp/Home/Index 
何时应该:

/Home/Index
我怀疑是上述“SubApp_default”路由导致了问题。如果你明白我的意思,我希望“根”URL使用“根”路由,而只有特定于区域的URL使用区域路由

请想一想

非常感谢

编辑1:

我正在使用ActionLinks ie:

 @Html.ActionLink("Create Order", "Index", "Order", new { area=""},null) 
它将显示为菜单项。当在子应用程序区域/应用程序中时,将作为

 /SubApp/Order/Index 
而不是

/Order/Index. 

我在_布局页面中有此菜单操作链接代码。

当您的应用程序中有区域时,您需要明确指定要指向的控制器和操作

如果在子应用区域内,则需要创建的指向根的任何链接都应包含一个空白区域

@Url.Action("index", "home", new { area = "" }
使用相同的概念,从根控制器到子应用区域的任何url都应包括链接中的区域:

@Url.Action("index", "home", new { area = "SubApp" }

如果您没有跨越任何边界,则不指定区域将默认为您所在的区域。

我是否必须指定“{area=…”在我所有的actionlink中。我希望不是。好吧,我发现它不起作用,因为使用了存储在区域内的特定于区域的布局。现在使用根布局。我有点惊讶,在路由文件中没有解决此问题的方法,而不必为每个actionlink指定区域属性?
@Url.Action("index", "home", new { area = "SubApp" }