Создание ActionLinks при сохранении исходных значений Uri / маршрута - PullRequest
0 голосов
/ 10 января 2011

У меня есть контроллер со стандартным действием Index, а также многие другие действия, каждое из которых отображает свое собственное представление.

Когда метод действия вызывает другое действие, Uri в браузере выглядит как

http://localhost/Home/Events/20100120/Sydney

Как мне создать Action Link в одном из моих шаблонов, например, как этот, и при этом сохранить другие значения маршрута? http://localhost/Home/Events/20100120/Sydney/10PM

Если я это сделаю, я потеряю все остальные значения маршрута в Uri.

<%= Html.ActionLink("View 10PM times", "Events", "Home", new Dictionary<string, object>() { {"time", "10PM"} })%>

Ответы [ 2 ]

0 голосов
/ 10 января 2011

Вы можете использовать Html.RouteLink () примерно так:

<%
    var routeData = new RouteValueDictionary(this.ViewContext.RouteData.Values);
    routeData.Add("time", "10PM");
%>
<%=Html.RouteLink("View 10PM times", routeData) %>
0 голосов
/ 10 января 2011

Данные маршрута сохраняются автоматически.Предположим, что у вас есть следующий маршрут:

routes.MapRoute(
    "MyRoute",
    "foo/{token1}/{token2}/{action}",
    new { controller = "Home", action = "Action1", token1 = "", token2 = "" }
);

Теперь вы запрашиваете /foo/t1/t2/Action1 и внутри представления вы пишете ссылку на Action2:

<%= Html.ActionLink("Action2", "Action2")%>

Следующий URLсгенерировано: /foo/t1/t2/Action2.Значения маршрута сохраняются.

...