Я создал новый маршрут, который выглядит так в RouteConfig.cs.Ошибка маршрутизации MVC4 с дополнительными параметрами
routes.MapRoute("Edit_Personal",
"Edit/Personal/{userID}/{refKey}/{houseID}",
new {controller = "Edit", action = "Personal",
userID = UrlParameter.Optional,
refKey = UrlParameter.Optional,
houseID = UrlParameter.Optional });
Этот маршрут работает отлично, если я прохожу в чем-то вроде:
Edit/Personal/78887/abcd/
UserID = 78887
RefKey = abcd
HouseID = null
Однако, если RefKey никогда не передается (это необязательно), но принят HouseID, я получаю это как результат (URL-адрес):
Edit/Personal/78887//88881 <--- Notice the two slashes between the numbers.
UserID = 78887
RefKey = 88881
HouseID = null
результаты, которые я ожидал, являются:
UserID = 78887
RefKey = null
HouseID = 88881
Если вы заметили, RefKey должен быть NULL, однако он привязывает HouseID к параметру RefKey.
Есть ли способ исправить это? Я что-то упускаю?
Вы можете сделать это со знаком вопроса, например: '» Редактировать/Личные/{идентификатор пользователя}/{refKey?}/{houseID} "' –