【问题标题】:Cannot pass Request.Url.PathAndQuery value as ReturnUrl query string in ASP.NET MVC无法在 ASP.NET MVC 中将 Request.Url.PathAndQuery 值作为 ReturnUrl 查询字符串传递
【发布时间】:2016-09-19 08:06:39
【问题描述】:

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

我有一个这样的链接。

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

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

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 值传递给登录页面?

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

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

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

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

    【讨论】:

    • 哎呀!非常感谢。我的错误和弱点。
    猜你喜欢
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多