/ / Zugriff auf MVC-Controller von MVC-Bereich - asp.net-mvc, asp.net-mvc-Bereiche, asp.net-mvc-Controller

Zugriff auf MVC Controller von MVC-Bereich - asp.net-mvc, asp.net-mvc-Bereiche, asp.net-mvc-Controller

Ich habe eine Seite mit Kulturauswahlkontrolle. Dieses Steuerelement wird auf der Seite "Layout" teilweise wiedergegeben.

@Html.Partial("~/Views/Shared/CultureChooserUserControl.cshtml")

Die Kulturauswahlsteuerung sieht folgendermaßen aus:

@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" })

Die Kulturänderungsmethode befindet sich im Standardcontroller der Seite, die Folgendes enthält, wenn ich die Kultur ändern möchte:

http://localhost/myapp/Default/ChangeCulture......

Jetzt habe ich meine Seite mit Bereichen getrennt, das Problem ist, dass wenn ich versuche, die Kultur zu ändern, wenn ich in einem Gebiet bin, die Anfrage falsch ist und das zu einem Fehler führt:

http://localhost/myapp/**AREA/Default**/ChangeCulture.....

Wie kann ich das beheben? Vielen Dank für Ihre Unterstützung im Voraus.

Frank.

Antworten:

2 für die Antwort № 1

Wenn Ihr Layout alle Bereiche und Kultur ändertaction ist im Controller im Standardbereich und dann im Layout in Ihrem routeValues-Objektbereich = "" in allen Helfern, die diese Aktion adressieren, zum Beispiel:

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