2016-12-09 3 views
2

Я пытаюсь установить язык с использованием .NET MVC Web ApplicationКонфигурация .NET .NET

Вот моя функция SetCulture;

 public ActionResult SetCulture(string lan) { 
     string Culture = Request.QueryString.Get("lan"); 

     // Validate input 
     Culture = CultureHelper.GetImplementedCulture(Culture); 
     // Save culture in a cookie 
     HttpCookie cookie = Request.Cookies[ "_culture" ]; 
     if (cookie != null) 
      cookie.Value = Culture; // update cookie value 
     else { 
      cookie = new HttpCookie("_culture"); 
      cookie.Value = Culture; 
      cookie.Expires = DateTime.Now.AddYears(1); 
     } 
     Response.Cookies.Add(cookie); 
     //Session["_culture"] = Culture; 
     return RedirectToAction("../Home/Index"); 
    } 

Это первая проблема; Когда открыта страница http://localhost:55616/Home/Index, вы можете изменить язык. Однако, когда http://localhost:55616 открыт, он обновляется автоматически, но не меняет язык.

Вот вторая проблема; Как видно, я перенаправляю страницу на страницу ../Home/Index. Но мне нужно перенаправить на страницу самому себе, например, когда она находится на ../Home/UserSettings, это будет ../Home/UserSettings после смены языка.

+0

первая проблема, которую вы можете отлаживать, чтобы узнать, какая разница между двумя url, вторая проблема, вам может понадобиться параметр returnUrl, который вы можете перенаправить после изменения языка – cheergo

+0

, вы можете передать параметр, чтобы показать страницу, на которой было отправлено изменение языка request – cheergo

+0

У вас есть идея получить запрос на изменение языка страницы? – NewPHPer

ответ

0

Вот ответ

public ActionResult SetCulture(string lan) { 
     string Culture = Request.QueryString.Get("lan"); 
     var returnUrl = Request.UrlReferrer; 
     // Validate input 
     Culture = CultureHelper.GetImplementedCulture(Culture); 
     // Save culture in a cookie 
     HttpCookie cookie = Request.Cookies[ "_culture" ]; 
     if (cookie != null) 
      cookie.Value = Culture; // update cookie value 
     else { 
      cookie = new HttpCookie("_culture"); 
      cookie.Value = Culture; 
      cookie.Expires = DateTime.Now.AddYears(1); 
     } 
     Response.Cookies.Add(cookie); 
     //Session["_culture"] = Culture; 
     return Redirect(returnUrl.OriginalString); 
    } 

Request.UrlReferrer; возвращает страницу, на которую отправляется запрос.