编辑:对不起,伙计们,但是当我第二天上班时,我没有看到这种行为,也无法复制它。肯定还有别的事情发生了。我本来想删掉这个问题的,但是你不能再这么做了。既然到处都没有点赞,那就没什么大不了的。
我通过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字段
不,这不会破坏你的路线。查询字符串参数不是路由的一部分。