Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Возврат на View, с которого был вызван метод другого контроллера

В дефолтном файле _Layout.cshtml, который является главным слоем, есть 2 кнопки, которые переключают язык сайта:


Есть LanguageController.cs
public class LanguageController : Controller { public ActionResult Change(string LanguageAbbrevation) { if (LanguageAbbrevation != null) { Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbbrevation); Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbbrevation); } HttpCookie cookie = new HttpCookie("Language"); cookie.Value = LanguageAbbrevation; Response.Cookies.Add(cookie);
return View(); // В этом и проблема } }
Так же есть пустая вьюшка Change, чтобы не было ошибок.
Дело в том, что эти кнопки отображаются на каждой странице сайта и после нажатия, пользователя отправляет на страницу Change. Пользователя никуда отправлять не надо, только обновить текущую View. Как это сделать?


Ответ

Можно передавать в action дополнительным параметром URL, на который необходимо сделать возврат:
public ActionResult Change(string LanguageAbbrevation, string ReturnUrl) { // здесь все то же самое
return Redirect(ReturnUrl); }
В _Layout указываем значение этого дополнительного параметра как Request.Url.PathAndQuery

Комментариев нет:

Отправить комментарий