Мне иногда нужно работать со значениями моего маршрута в партиалах, которые используются в различных представлениях.
Затем я обычно получаю доступ к routeDictionary и меняю его. Преимущество, которое вы получаете, состоит в том, что есть хороший шанс, что код переживет изменения в маршрутизации, и что вы можете использовать routeValues в нескольких сгенерированных URL.
Большинство людей утверждают, что лучшим местом для этого кода является не представление. Но, надеюсь, вы поняли идею.
Код вида:
RouteValueDictionary routeValues = ViewContext.RouteData.Values;
routeValues.Remove(...);
routeValues.Add(...);
routeValues["Key"] = ...;
<%
using (Html.BeginForm(
Url.RequestContext.RouteData.GetRequiredString("Action"),
Url.RequestContext.RouteData.GetRequiredString("Controller"),
routeValues,
FormMethod.Get))
{ %>