我怎么能忽略时间戳,jQuery添加到ajax url在我的路由



编辑:对不起,伙计们,但是当我第二天上班时,我没有看到这种行为,也无法复制它。肯定还有别的事情发生了。我本来想删掉这个问题的,但是你不能再这么做了。既然到处都没有点赞,那就没什么大不了的。

我通过jQuery ajax调用将数据拉入div。由于我主要使用IE9,我需要在ajax调用上使用cache: false,禁用jQuery中的输出缓存。生成的URL如下所示:

http://localhost/site/UserDetails.mvc/48d76cdd-da6f-414d-ba63-f24708d351ff?_=1315347866786

我真正想要的是:

http://localhost/site/UserDetails.mvc/48d76cdd-da6f-414d-ba63-f24708d351ff

注意?_=1315到第一个的末尾。我很确定这是jQuery为了防止输出缓存而添加的时间戳。这是打破我的mvc路由,这是期望一个单一的ID字段在路由的末尾:

 routes.MapRoute(
          "DefaultNoAction", // Route name
          "{controller}.mvc/{id}", // URL with parameters
          new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
         ); 

所以我得到一个404与时间戳结束的URL。我很新的MVC,我不知道如何告诉路由器,任何url参数被命名为_应该被忽略。我该怎么做呢?

看一下ASP。. NET MVC: url路由vs querystring线程,其中讨论了如何处理这种情况

这破坏了我的mvc路由,它期望在路由的末尾有一个ID字段

不,这不会破坏你的路线。查询字符串参数不是路由的一部分。

最新更新