создать вручную параметр ReturnUrl

у меня есть представление типа «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"] })%>

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


person kusanagi    schedule 17.03.2010    source источник


Ответы (1)


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

<%= Html.ActionLink("enter to buy", "LogOn", "Account", 
    new { ReturnUrl = Request.Url.AbsolutePath })%>
person Çağdaş Tekin    schedule 17.03.2010