조치 후 현재보기로 해요 돌아. 레이아웃의 일부로 언어/로컬라이제이션 변경에 사용되는 두 개의 링크를 표시하고 싶습니다.나는 MVC.NET 3.</p> <p>나는 <code>_Layout.cshtml</code> 기본으로 (구조, 탐색)를 사용하여 주위에 내 머리를 정리하려고 _Layout.cshtml
어떤 페이지를 보든 표시하고 클릭 할 수 있어야하며 현지화를 변경 한 후이라는보기를 다시로드하고 싶습니다. 따라서 고객이보고있는 페이지가 다시로드되고 새 현지화가 설정됩니다.
한 가지 방법은 각 사이트 컨트롤러에서 지역화 변경 작업을 복사하여 붙여 넣는 것이지만 더 쉽고 세련된 방법은 없습니까?
지역화 변경을 처리하는 특정 컨트롤러를 만들려고했지만 이전 컨트롤러로 뷰어를 반환하는 방법을 알 수 없습니다.
아마도 jquery로이 작업을 쉽게 수행 할 수 있습니까?
언어 변경 버튼이있는 _Layout
파일의 DIV
입니다. 현재 컨트롤러의 액션을 호출합니다. 즉, 각 컨트롤러의 컨트롤러에 정의해야합니다. (좋은 점은 반환되는 뷰가 항상 정확하다.)
<div id="top>
@using (Html.BeginForm())
{
<button id="sv_flag" name="localization" title="@Resources.Global.Sv_Flag_Hover" value="sv-SE" />
<button id="en_flag" name="localization" title="@Resources.Global.En_Flag_Hover" value="en-GB" />
}
</div>
나는이에 대한 특정 컨트롤러를 사용하여 시도,하지만 난 이후 현재보기로 돌아갈 수있는 방법을 생각할 수 없다
? 그래서 같이 : 이제 대린의 제안을 사용하여
@using (Html.BeginForm("LocalizationAction", "LocalizationController"))
...
편집 , 나는 레이아웃 페이지에서 controller
및 action
값을 보내
@using (Html.BeginForm("SetLocalization", "Localization",
new { returnController = @ViewContext.Controller.ValueProvider.GetValue("controller").RawValue,
returnAction = @ViewContext.Controller.ValueProvider.GetValue("action").RawValue }))
...
하지만 현지화 변화가 동작하지 않습니다 내 컨트롤러 동작은 다음과 같습니다.
public ActionResult SetLocalization(string localization, string returnController, string returnAction)
{
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(localization);
return RedirectToAction(returnAction, returnController);
}
나는 몇 주 전에 매우 비슷한 문제를 겪었다. 베이스 컨트롤러는 제가 취한 루트였습니다. 모든 종류의 쓰레기에 매우 편리합니다. – ledgeJumper