I recently hit a problem when I needed to generate several urls from an ActionResult. They differ by having different route values. The code looks like this:
var url1 = Url.Action(MVC.Home.Index().AddRouteValue("foo", "bar1")); // ok
var url2 = Url.Action(MVC.Home.Index().AddRouteValue("foo", "bar2")); // throws ArgumentException
Is this the correct behaviour, or should AddRouteValue() check to see if the route value is already there and update it if it is?
If we want to make this change I will send a pull request with the changes in.