У меня следующий маршрут:
routes.MapRoute(
"Search",
"Search.aspx/l-{lID}/t-{tID}/p-{pID}/s-{sID}",
new {
controller = "Search",
action = "Search",
lID = "",
tID = "",
pID = "",
sID = "" },
new { lID = @"\d{0,}",
tID = @"\d{0,}",
pID = @"\d{0,}",
sID = @"\d{0,}" }
);
Что отлично работает, если мой URL равен http://localhost:1234/Search.aspx/l-1/t-1/p-1/s-1, но я хочу, чтобы некоторые из этих параметров были пустыми, поэтому URL может выглядеть следующим образом: http://localhost:1234/Search.aspx/l-/t-/p-1/s- однако, когда это происходит, я получаю 404 ошибки. 1008 *
Кто-нибудь знает, как я могу заставить этот маршрут работать так, чтобы у меня могли быть пустые значения?
Обновление:
Следуя совету, я обновил проект до MVC 2, однако проблема все еще возникает. Мой маршрут теперь выглядит так:
routes.MapRoute(
"Search",
"Search.aspx/l-{lID}/t-{tID}/p-{pID}/s-{sID}",
new
{
controller = "Search",
action = "Search",
lID = UrlParameter.Optional,
tID = UrlParameter.Optional,
pID = UrlParameter.Optional,
sID = UrlParameter.Optional
},
new
{
lID = @"\d{0,}",
tID = @"\d{0,}",
pID = @"\d{0,}",
sID = @"\d{0,}" }
);
Я все еще получаю 404, когда пытаюсь просмотреть представление с пустыми значениями в.
Еще одна проблема, возникшая после перехода на версию 2, заключается в том, что RedirectToRoute не может найти маршрут. Я получаю
Ни один маршрут в таблице маршрутов не соответствует заданным значениям.
сообщение об ошибке. Мой код выглядит так:
return RedirectToRoute(
"Search",
new {
lID = lID,
tID = tID,
pID = pID,
sID = sID
}
);
Опять же, любая помощь будет высоко ценится.
Спасибо