У меня есть локализация в моем проекте. Я хочу, чтобы каждый раз, когда пользователь менял культуру, он перенаправлял его на ту же страницу, на которой он был. Но теперь с новой культурой.ASP.NET MVC 5 - Перенаправление на ту же страницу с культурой
Например, если пользователь находится на странице Регистрация вот ссылка, которая появляется:
http://localhost:49445/pt/Account/Register
с pt
является культура.
Я начал смотреть вокруг и придумал этот метод изменения культуры:
public ActionResult ChangeCulture(string lang)
{
var langCookie = new HttpCookie("lang", lang) { HttpOnly = true };
Response.AppendCookie(langCookie);
string url = this.Request.UrlReferrer.AbsoluteUri;
return Redirect(url);
}
Но очевидно, что это не работает, потому что это просто собирается перенаправить меня снова
http://localhost:49445/pt/Account/Register
вместо
http://localhost:49445/en/Account/Register
Я искал вокруг, не найдя ничего. Может ли кто-нибудь указать мне в правильном направлении? Или дать хороший ответ?
Я немного проверю этот подход. Вы знаете, есть ли способ перенаправить на ту же страницу и сохранить сообщения проверки. Например, если пользователь попытался зарегистрироваться, но некоторые сообщения об ошибках показали. И тогда вы изменили культуру, и она перенаправит сохранение сообщений о проверке. – Lokuzt
Сообщения о проверке @Lokuzt показаны в результате для запросов POST. Если вы измените маршрут, вы создадите новый запрос GET, поэтому сообщения о проверке исчезнут. Вы должны повторно отправить форму, чтобы снова отобразить эти сообщения. –
Я пытаюсь повторно отправить форму с помощью tempdata. Но я не добился успеха, но все же думаю, что это неправильный путь. Есть ли у вас какие-либо подсказки, к какому подходу я должен взять? – Lokuzt