Как самостоятельно перенаправить и изменить параметр в asp.net mvc? - PullRequest
2 голосов
/ 05 апреля 2009

Если мои URL выглядят так: www.mysite.com/1/home www.mysite.com/1/other-action www.mysite.com/1/another-action/?value=a

как я могу переключить параметр 1 при вызове того же действия с теми же параметрами и значениями строки запроса?

Например, если я сейчас просматриваю www.mysite.com/1/another-action/?value=a Я хотел бы получить необходимые ссылки для перехода на www.mysite.com/2/another-action/?value=a , , www.mysite.com/x/another-action/?value=a

Url.Action, кажется, не помогает ...

Ответы [ 2 ]

3 голосов
/ 06 апреля 2009

Общая идея заключается в клонировании текущего RouteValueDictionary, изменении одного значения, а затем создании новой ссылки действия на основе нового RouteValueDictionary. Вот пример. Но вы, вероятно, захотите сделать это в помощнике по URL, а не прямо в представлении:

    <% var foo = new RouteValueDictionary();
       foreach (var value in ViewContext.RouteData.Values)
       {
           foo.Add(value.Key, value.Value);
       }
       foo["id"] = 2;
       var newUrl = Url.Action(foo["action"].ToString(), foo); %>
0 голосов
/ 10 февраля 2016

Я бы предложил небольшую оптимизацию для ответа Крейга:

<% var foo = new RouteValueDictionary(ViewContext.RouteData.Values); foo["id"] = 2; var newUrl = Url.Action(foo["action"].ToString(), foo); %>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...