Казалось бы, достаточно просто, но, оказывается, это не так - в основном из-за того, что View не может знать, каким путем через Model и Controller вы туда попали. В любом случае, это проблема, требующая решения:
У меня есть ссылка для входа, которая переводит пользователя в форму для ввода имени пользователя и пароля. Когда пользователь нажимает «отправить», я хочу перенаправить на страницу, которую он просматривал. Самый простой способ сделать это - указать URL-адрес текущей страницы в виде строки запроса (...?returnUrl=...
), а все остальное уже построено.
Но где я могу найти этот URL с моей точки зрения при отображении ссылки? Естественно, я не могу использовать RedirectToActionResult, поскольку я не хочу на самом деле передавать пользователя - только отображать URL в ссылке. Как?
EDIT:
Теперь я назначил награду за этот вопрос, и поэтому считаю нужным уточнить и мои потребности.
У меня есть пользовательский элемент управления с именем Login.ascx в моей общей папке. В нем я отображаю ActionLink для формы входа в систему, и она включена в нижний колонтитул на моей главной странице. Что я хочу сделать, это следующее:
Когда визуализируется ActionLink, к строке запроса returnUrl
добавляется маршрут к представлению, которое в данный момент отображается . Если это будет выполнено, пользователь вернется на страницу, которую он просматривал, после успешного входа в систему с функциональностью, уже встроенной в ASP.NET MVC Framework.
Причина, по которой предыдущие ответы не были достаточными, заключается в основном в том, что они не предоставили способ построения URL-адреса маршрута к текущему представлению . Я знаю, как добавить строку запроса, но не знаю, как узнать, что добавить в эту строку.
Чтобы пометить ответ как ответ, я хочу, чтобы метод перестроил маршрут к отображаемому в данный момент представлению из пользовательского элемента управления на главной странице.