Это нормально. У вас может быть только один необязательный параметр, и этот параметр должен быть последним в вашем определении маршрута. Так что cat
, subcat
и page
не могут быть необязательными. Вам необходимо указать их значения:
<%: Html.RouteLink("Women's", "Category", new {
cat = "Women",
subcat = "somesubcat",
page = "123"
})%>
В ASP.NET MVC 3 это правило было применено.
Рассмотрим следующие URL:
category/1
category/1/2/
category/1/2/3
category/1/2/3/4
Возможны только последние два URL, потому что это единственный случай, когда параметры маршрута могут быть сопоставлены с соответствующими значениями без неоднозначности.