создать вручную параметр ReturnUrl - PullRequest
2 голосов
/ 17 марта 2010

У меня есть вид как 'home / details / 5', доступ к нему может получить анонимный пользователь. но есть кнопка, которую могут нажимать только зарегистрированные пользователи. нет проблем, я могу посмотреть Request.IsAuthenticated, и если анонимно, я показываю кнопку входа вместо секретной кнопки

но проблема - при нажатии логина я могу потерять адрес и параметры страницы. Как я могу создать кнопку входа и передать параметр ReturnUrl? что-то вроде

 <%= Html.ActionLink("enter to buy", "LogOn", "Account", new { ReturnUrl = path to view with route value })%>

вижу только глупое решение

<%= Html.ActionLink("enter to buy", "LogOn", "Account", new { ReturnUrl = "home/details/" + ViewContext.RouteData.Values["id"] })%>

но мне не нравятся жесткие коды контроллеров

1 Ответ

5 голосов
/ 17 марта 2010

Вы также можете использовать Request.Url.AbsolutePath.

<%= Html.ActionLink("enter to buy", "LogOn", "Account", 
    new { ReturnUrl = Request.Url.AbsolutePath })%>
...