2013-09-25 114 views
0

我有文化选择器控制的页面。此控件在“布局”页面上呈现为部分。从MVC区域访问MVC控制器

@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。

+0

您可以尝试用RouteLink替换ActionLink,请参阅http://msdn.microsoft.com/en-us/library/system.web.mvc.html.linkextensions.routelink%28v=vs.108%29.aspx – jbl

回答

2

当你的布局中使用的所有领域和文化变化的行动是在随后的布局在routeValues设置默认区域控制器对象区域=“”在解决这一行动的所有助手,例如:

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

Works完美!!非常感谢! – Frank