手动创建参数ReturnUrl

kus*_*agi 2 asp.net-mvc returnurl

我有像'home/details/5'这样的视图,它可以被匿名用户访问.但是有按钮,只能由注册用户按下.没问题,我可以查看Request.IsAuthenticated,如果匿名我显示按钮登录而不是秘密按钮

但问题是 - 按登录时我可能会丢失页面的地址和参数.如何创建登录按钮并传递参数ReturnUrl?就像是

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

我只看到愚蠢的解决方案

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

但我不喜欢硬编码控制器的名称

Çağ*_*kin 5

你也可以使用Request.Url.AbsolutePath.

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