У вас не может быть маршрута, который имеет два необязательных параметра, только последний параметр может быть необязательным именно из-за описанной проблемы.Я полагаю, что у вас есть параметр по умолчанию для value
, например byid , и используйте его, когда человек выбирает профессию.
Я предполагаю, что вы создаете URL с помощью JavaScript, так какиспользование действия формы GET приведет к добавлению имен параметров в URL.В этом случае, когда текстовое поле пусто, просто вставьте значение по умолчанию byid .
Обновите ваш маршрут, включив в него значение по умолчанию, чтобы все сгенерированные вами URL работали.См. Статью Фила Хаака об этом альтернативном способе обработки URL-адресов, имеющих два «необязательных» параметра.
// used when both parameters are specified
routes.MapRoute(
"Company+Profession", // Route name
"{action}/{value}/{profId}", // URL with parameters
new { controller = "Companies", action = "Index", value ="byid", profId = UrlParameter.Optional } // Parameter defaults
);