2013-07-17 6 views
0

부분 선택을 사용하여 culture chooser 컨트롤을 렌더링합니다. 컨트롤은 ~/Views/Shared/Control.cshtml에 저장됩니다. 세 가지 다른 언어에 대한 컨트롤에는 세 가지 동작 링크가 있습니다. 앱이 브라우저에서 시작하지만이 지역에서 컨트롤을 사용하는 경우가 잘못된 컨트롤러에 액세스 할 때Partial이 부분에 렌더링 될 때 ActionLink의 링크가

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

나는 기본 페이지에서이 컨트롤을 사용할 수 있습니다. "default"HomeController를 사용하도록 컨트롤의 actionlink에 알릴 수 있습니까?

사전에 도움을 주셔서 감사 드리며 자세한 내용이 필요하면 지금 알려 주시기 바랍니다.

안부 인사, Frank.

편집 : 이것은 문화 선택기 컨트롤이 렌더링됩니다 레이아웃 페이지의 일부입니다

: 나는 컨트롤러에 세 번째 매개 변수의 포인트를 알고

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

는, 문제는이 때문이다 홈 컨트롤러뿐입니다. ActionLink에게 HomeController를 사용할 것을 말할 수 있습니까?

+0

당신의 actionlink의 3rth 매개 변수는 컨트롤러 매개 변수는있다 충분해야합니다. 브라우저에 표시되는 렌더링 된 링크를 표시 할 수 있습니까? –

답변

0

0

당신이 루트 매개 변수에서 지역을 지정해야 수행 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); 
    }