ASP.NET MVC2 プロジェクトで既定のルートを設定しており、他のコントローラーの一部に対してそれを追加/変更したいと考えています。「id」パラメーター (int) を期待する Details アクションを持つ Customer コントローラーがあるとします。例えば:
//
// 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
);
可能であれば、デフォルトルートを維持したいことに注意してください...すべてのコントローラーは、「id」(int)パラメーターが必要な「詳細」と「編集」を使用します..達成する方法があるかどうか疑問に思っていますこれは、複数のルート (つまり、一般的なもの) を指定する必要はありません...そしてもちろん、ユーザーが「/Customer/Details/apple」のようなものを入力すると、エラーはスローされず、エラーページに移動することが目標です.. .
デフォルト値を設定することを示唆するこの投稿もありますが、その方法がわかりません...