开发者

how can i ignore the timestamp that jQuery adds to the ajax url in my routing?

Edit: Sorry guys, but I wasn't seeing this behavior when I came into work the next day and couldn't reproduce it. Something else must have been going on. I was going to delete the question but you can't do that anymore. Since there aren't any upvotes anywhere, no harm done.

I'm pulling data in to a div via a jQuery ajax call. Since I'm using IE9 primarily, I need to disable output caching in jQuery using cache: false, on the ajax call. That produces a URL that looks like:

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

What I actually want is:

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

Note the ?_=1315 toward the end of the first one. I'm pretty sure that's a timestamp that jQuery is adding to prevent output caching. This is breaking my mvc routing, which is expecting a single ID field at the end of the route:

 routes.MapRoute(
          "DefaultNoAction", // Route name
          "{controller}.mvc/{id}", // URL with parameters
          new { controller = "Home", action = "Index", id = UrlParameter.Optional 开发者_如何学C} // Parameter defaults
         ); 

So I'm getting a 404 for the URL that ends with the timestamp. I'm pretty new to MVC and I don't know how to tell the router that any url parameter that is named _ should be ignored. How would I do this?


Take a look at the ASP.NET MVC: url routing vs querystring thread, where discussed how to handle this case.


This is breaking my mvc routing, which is expecting a single ID field at the end of the route

No, this is not breaking anything on your routes. Query string parameters are not part of the routes. They are ignored.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜