MVC3: URL только с контроллером и параметрами (без действий) - PullRequest
0 голосов
/ 09 февраля 2012

я пытаюсь создать Html.ActionLink с сегментами www.example.com/Store*/Segment1/Segment2/Segment3*.Сегменты являются необязательными.

Я определил следующий маршрут:

routes.MapRoute("Store",
"{controller}/{Segment1}/{Segment2}/{Segment3}",  
new
{
controller = "Store",
action = "Show",
segment1 = UrlParameter.Optional,
segment2 = UrlParameter.Optional,
segment3 = UrlParameter.Optional
}
);

Действие не должно отображаться в URL.Я не могу создать действительную ссылку.

В представлении я генерирую ссылки следующим образом:

<ul>
@foreach (KeyValuePair<string, string> item in ViewBag.LinkList){<li>@Html.ActionLink(item.Key, "Show", "Store", new { item.Value })</li>}
</ul>

Когда я набираю URL в адресной строке, все идет хорошо (действие может читать сегменты как параметры), но я не могуполучить правильный Html.ActionLink.Кто-нибудь может привести пример работающего ActionLink для этого маршрута?Спасибо!

1 Ответ

0 голосов
/ 09 февраля 2012

Вы определили значение по умолчанию для segment2 дважды, забыв о segment3, который нарушает все, потому что вы не определили переменные сегмента в вашем вызове ActionLink.

...