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 从MVC区域访问MVC控制器_Asp.net Mvc_Asp.net Mvc Areas_Asp.net Mvc Controller - Fatal编程技术网

Asp.net mvc 从MVC区域访问MVC控制器

Asp.net mvc 从MVC区域访问MVC控制器,asp.net-mvc,asp.net-mvc-areas,asp.net-mvc-controller,Asp.net Mvc,Asp.net Mvc Areas,Asp.net Mvc Controller,我有一个带有区域性选择器控件的页面。此控件在布局页上呈现为部分 @Html.Partial("~/Views/Shared/CultureChooserUserControl.cshtml") 区域性选择器控件如下所示: @Html.ActionLink("English", "ChangeCulture", "Default", new { lang = "en", returnUrl = this.Request.RawUrl }, new { @class = "english

我有一个带有区域性选择器控件的页面。此控件在布局页上呈现为部分

@Html.Partial("~/Views/Shared/CultureChooserUserControl.cshtml")
区域性选择器控件如下所示:

@Html.ActionLink("English", "ChangeCulture", "Default",  new { lang = "en", returnUrl =     this.Request.RawUrl }, new { @class = "englishFlagButton" })
@Html.ActionLink("Deutsch", "ChangeCulture", "Default",  new { lang = "de", returnUrl = this.Request.RawUrl }, new { @class = "germanFlagButton" })
@Html.ActionLink("French", "ChangeCulture", "Default",  new { lang = "fr", returnUrl = this.Request.RawUrl }, new { @class = "frenchFlagButton" })
@Html.ActionLink("Italian", "ChangeCulture", "Default",  new { lang = "it", returnUrl = this.Request.RawUrl }, new { @class = "italianFlagButton" })
区域性更改方法位于页面的默认控制器中,当我要更改区域性时,该控制器提供以下内容:

http://localhost/myapp/Default/ChangeCulture......
现在我将我的站点与区域分开,问题是当我在某个区域尝试更改文化时,请求是错误的,并导致错误:

http://localhost/myapp/**AREA/Default**/ChangeCulture.....
我怎样才能解决这个问题。提前感谢您的支持


Frank。

当您的布局使用所有区域且区域性更改操作在默认区域的控制器中时,然后在所有指向此操作的帮助程序中的RouteValue对象区域“”的布局中设置,例如:

@Html.ActionLink("English", "ChangeCulture", "Default",  new { lang = "en", returnUrl = this.Request.RawUrl, @area = "" }, new { @class = "englishFlagButton" })

您可以尝试用RouteLink替换您的ActionLink,请看它是否完美!!谢谢!