在json请求期间更新MVC 3中的URL

时间:2011-04-16 03:46:06

标签: c# .net asp.net-mvc-3

我有一个默认页面控制器,如

  

http://localhost/Test/Index.mvc/Index

我有一个嵌套下拉列表的div。在我最后一次下拉使用jquery Ajax我调用一个动作方法GetTime(字符串临时1,字符串临时2)。但我的网址仍然与上面相同,它永远不会改变

我需要将网址更改为

  

http://localhost/Test/Index.mvc/Time?temp1=10&temp2=20

我在global.ascx

中添加了一个新的路线图
routes.MapRoute(
       "Test",
       "{controller}.mvc/{action}/{id}",
       new {controller ="Index", action="GetTime",id=" "});

当我使用firebug来调试url是完全正常的,我得到了理想的结果,但我需要更改为书签的情况下的URL。

谢谢, 爬完

1 个答案:

答案 0 :(得分:0)

您提到您正在使用jQuery和Ajax来调用该操作。这意味着它正在发生在客户端。 only way to update the URL实际上是重定向到该网址。你不能修改它,你做的任何客户端没有重做的任何好处都会有用。

换句话说,您需要:

  1. 使用Html.ActionLink()
  2. 使用表单+ <input type="submit" />
  3. 使用javascript:window.location = @Url.Action(...);
  4. 请记住,如果您使用选项3,如果您仍在执行该ajax调用,您的操作将重新执行 - 可能不是您想要的。