2013-07-17 4 views
0

Я использую частично, чтобы отобразить элемент управления выбора культуры. Элемент управления хранится в ~/Views/Shared/Control.cshtml. В трех элементах управления есть три действия для трех разных языков.ActionLink in Partial, когда Partial отображается в области

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

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

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

С уважением, Frank.

EDIT:

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

<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?

+0

3rth параметр в вашем ActionLink является параметром контроллера, что должно быть достаточно. Можете ли вы показать мне визуализированную ссылку, которую показывает браузер? –

ответ

0

Переименовать один из HomeControllers

0

вам нужно указать область в параметрах маршрута Do?

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