ActionLink в Частичном, когда Частичное отображается в области

Я использую партиал для визуализации элемента управления выбора культуры. Элемент управления хранится в ~/Views/Shared/Control.cshtml. В элементе управления есть три actionlink для трех разных языков.

@Html.ActionLink("English", "ChangeCulture", "Home",  new { lang = "en", returnUrl = this.Request.RawUrl }, null)

Я могу использовать этот элемент управления на странице по умолчанию, когда приложение запускается в браузере, но если я использую элемент управления из области, он обращается к неправильному контроллеру. Можно ли указать actionlink в элементе управления использовать HomeController по умолчанию?

Спасибо за вашу помощь заранее и позвольте мне сейчас, если потребуется более подробная информация.

С наилучшими пожеланиями, Фрэнк.

РЕДАКТИРОВАТЬ:

Это часть страницы макета, где отображается элемент управления выбором культуры:

    <div id="login_details">
        <div class="username">@ViewRes.SharedStrings.User: @User.Identity.Name</div>
        @ViewRes.SharedStrings.ChangePassword
        @*@Html.Partial("CultureChooserUserControl")*@
        @Html.Partial("~/Views/Shared/CultureChooserUserControl.cshtml")
    </div>

Я знаю, что третий параметр указывает на контроллер, проблема в том, что в этой области также есть HomeController. Могу ли я сообщить ActionLink, какой HomeController использовать?

2 ответа

Переименуйте один из HomeControllers

Вам необходимо указать Район в параметрах маршрута?

@Html.ActionLink("English", "ChangeCulture", "Home",  
   new {Area = string.Empty, lang = "en", returnUrl = this.Request.RawUrl }, null)

У меня была похожая проблема, когда я пытался показать свое меню с контроллера в области.

Мое меню является частичным представлением из MenuController.

В моем _Layout.cshtml я теперь рендеринг меню, как это

@Html.Action("Index", "Menu",new{Area = string.Empty})

Мой MenuController делает это...

    // GET: /Menu/
    public ActionResult Index()
    {
        var vm = new MenuViewModel();
        vm.IsLoggedIn = CurrentUser != null;
        ...
        return PartialView(vm);
    }
Другие вопросы по тегам