У меня есть маршрут по умолчанию, настроенный в моем проекте ASP.NET MVC2, и я хотел бы добавить / изменить его для некоторых других моих контроллеров. Допустим, у меня есть контроллер клиента с ожидаемым действием Details и параметром id (int). Например:
//
// GET: /Customer/Details/5
public ActionResult Details(int id)
{
//...
}
Как я могу добавить маршрут, который будет возвращать 404, если пользователь вводит «не число»? Я попытался добавить следующий маршрут по умолчанию "до", но это не сработало ...
routes.MapRoute(
"DefaultDigitsId", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index" },
new { id = @"\d+" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Обратите внимание, я хотел бы, если возможно, сохранить маршрут по умолчанию ... Все мои контроллеры используют "Details" и "Edit", где требуется параметр "id" (int). Мне интересно, есть ли способ выполнить это без необходимости указывать несколько маршрутов (то есть что-то общее) ... И, конечно же, цель состоит в том, чтобы, если пользователь вводит что-то вроде "/ Customer / Details / apple", он не выдает ошибку, а переводит их на страницу ошибок .. .
Также есть этот пост, который намекает на установка значения по умолчанию, но я не уверен, как это сделать ...