查询字符串参数在请求时丢失

时间:2017-07-05 14:18:52

标签: c# asp.net-mvc get request

我正在开发一个MVC 4 Web应用程序。

我正在尝试创建一个在授权/未授权上下文中更改的网址。

我正在为未经授权的用户生成以下网址:

  

http://localhost/vendas-web/Login?ReturnUrl=%2Fvendas-web%2FClienteNovo%2FIndex%299999

我第一次测试时,效果很好。

但是..我第二次尝试时,查询字符串丢失了......并且网址变成了:

  

http://localhost/vendas-web/Login

当我在匿名标签上对Chrome进行测试时,它的效果很好。 当我更改最后一个参数的值时,它可以正常工作。

有与此相关的某种缓存吗?

我做错了什么?

Soo,我的问题是:

如何在任何情况下保留我的完整网址?

2 个答案:

答案 0 :(得分:1)

这里的信息确实不够,但您可能会谈到的是,用户首次需要获得授权时,会自动将其重定向到第一个URL,其中包含ReturnUrl位。这是内置到框架中的,允许用户在登录后重定向回该URL。但是,如果您需要将此初始第一次重定向保留到登录页面,那就在您身上。任何链接都必须手动添加查询字符串参数:

@Url.Action("SomeAction", new { ReturnUrl = Request["ReturnUrl"] })

任何形式都必须将其作为隐藏输入包含在内:

@Html.Hidden("ReturnUrl", Request["ReturnUrl"])

否则,是的,它会丢失,因为您现在请求的文字网址不包括它。它不仅仅是神奇地附加。

答案 1 :(得分:0)

我的问题是缓存......

我已使用此注释来避免按应用程序使用缓存。

grep -o "string" yourfile | tr [:upper:] [:lower:]