У меня есть контроллер дома с Index()
и Foo(int id)
действия и техкартами подобного этим:Как перенаправить все недействительные адреса для некоторых действий
routes.MapRoute("Foo", "{id}", new { controller = "Home", action = "Foo" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Так как URL-адрес /
и /123
работа, которые они должны делать. Однако, когда URL является /blahblah
где blahblah
не является допустимым именем действия я получаю ошибку
Словарь параметров содержит пустую запись для параметра «» ид из ненулевых типа «System.Int32»
, что нормально, потому что действие Foo
получает параметр int вместо int?
Проблема в том, что я не могу использовать Int, потому что тогда оба Index
и Foo
действия соответствуют /
URL, так что есть дополнительный ненужный Foo
вызов.
Итак, вопрос в том, можно ли исключить исключение выше ИЛИ перенаправить все недопустимые URL-адреса, например /blahblah
, на некоторые другие действия.
Отлично, вот что мне нужно :) – user1121956
Вау, не знал, что это возможно. –