无法在ASP.NET MVC中将Request.Url.PathAndQuery值作为ReturnUrl查询字符串传递

时间:2016-05-22 12:03:40

标签: asp.net asp.net-mvc

我正在开发一个Asp.net MVC项目。我遇到了重定向网址的问题。

我有这样的链接。

<a href="@Url.Content("~/Account/Login&ReturnUrl="+Url.Encode(Request.Url.PathAndQuery))">Log in</a>

您可以看到我在网址末尾添加了ReturnUrl查询值,因为我想在登录后将用户重定向到当前网址。

Request.Url.PathAndQuery返回这样的字符串

/Item/Details?name=test&id=4

当我点击链接时,它给了我错误:

  

请求过滤模块配置为拒绝包含双转义序列的请求。

网址值如下:

  

http://localhost:50489/Account/Login&ReturnUrl=%2fItem%2fDetails%3fname%3dtest%25203%26id%3d4

我无法使用Html.ActionLink,因为我需要在锚标记内添加一些html内容。

如何将当前URL传递给ReturnUrl值以登录页面?

1 个答案:

答案 0 :(得分:1)

您的网址格式不正确。查询字符串必须以?开头,而不是&

<a href="@Url.Content("~/Account/Login?ReturnUrl="+Url.Encode(Request.Url.PathAndQuery))">Log in</a>

&用于分隔查询字符串中的查询字符串参数。