2016-12-09 14 views
2

.NET MVC Webアプリケーションを使用して言語を設定しようとしています.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が開いていると、自動的に更新されますが、言語は変更されません。

ここに第2の問題があります。 ご覧のとおり、ページを../Home/Indexページにリダイレクトしています。しかし、自分自身にページにリダイレクトする必要があります。例えば、../Home/UserSettingsにある場合は、言語を変更した後に../Home/UserSettingsになります。ここで

+0

最初の問題2つのURLの違いを確認するためにデバッグを行うことができます2番目の問題returnUrlとしてパラメータが必要な場合があります言語を変更した後にリダイレクト – cheergo

+0

言語変更を送信したページを表示するパラメータを渡すことができますリクエスト – 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です。リクエストが送信されたページを返します。

関連する問題