मेरे पास एमवीसी में संस्कृति परिवर्तन से संबंधित जिज्ञासा है। मैंने 2 तरीकों से कोशिश की, लेकिन स्पष्ट रूप से मैं कहीं गलत था।एक लिंक के आधार पर संस्कृति बदलें एमवीसी 4
मेरी web.config में मेरे पास है:
<globalization uiCulture="auto" culture="auto" />
यह कैसे मैं धागा संस्कृति बदलने की कोशिश की है:
<li>@Html.ActionLink("Eng", "ChangeCulture", "Home", new { lang="en-US"}, new { @class = "languageSelectorEnglish" })</li>
सबसे पहले विधि
मैं निम्नलिखित नियंत्रक है :
public void ChangeCulture(string lang)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
Response.Cookies.Remove("Language");
var langCookie = new HttpCookie("Language");
langCookie["Language"] = lang;
langCookie.Value = lang;
langCookie.Expires = System.DateTime.Now.AddDays(21);
Response.Cookies.Add(langCookie);
Response.Redirect(Request.UrlReferrer.ToString());
}
दूसरी विधि
public ActionResult ChangeCulture(string lang)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
// Split the url to url + query string
var fullUrl= Request.UrlReferrer.ToString();
var questionMarkIndex = fullUrl.IndexOf('?');
string queryString = null;
string url = fullUrl;
if (questionMarkIndex != -1) // There is a QueryString
{
url = fullUrl.Substring(0, questionMarkIndex);
queryString = fullUrl.Substring(questionMarkIndex + 1);
}
// Arranges
var request = new HttpRequest(null, url, queryString);
var response = new HttpResponse(new StringWriter());
var httpContext = new HttpContext(request, response);
var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));
// Extract the data
var values = routeData.Values;
var controllerName = values["controller"];
var actionName = values["action"];
var areaName = values["area"];
return RedirectToAction(actionName.ToString());
}
कहाँ मैं गलत कर रहा हूँ? धन्यवाद।
आपको क्या समस्या है? – ssilas777
संस्कृति बदलना नहीं चाहती है भले ही मैंने थ्रेड वर्तमान संस्कृति को बदल दिया हो। मैं जल्द ही अपना जवाब पोस्ट करूंगा क्योंकि मुझे कुकी सेट किए बिना ऐसा करने का कोई तरीका मिलता है। – Kosmog