私のデフォルト ルートは非常に単純ですが、ルート全体を完全に修飾しないと、ページが正しく読み込まれません。
私が使用しているルートは次のとおりです。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
HomeController 内のアプリケーションでの唯一のアクションは次のとおりです。
public ActionResult Index()
{
return Content("New stuff");
}
これらの URL では:
http://localhost:8081/NewMvc1/
私は得るThe incoming request does not match any route.
と:
http://localhost:8081/NewMvc1/Home
http://localhost:8081/NewMvc1/Home/Index
静的ファイルでリクエストを処理しようとしたことを示す 404 Mvc ページが表示されます。
それでも、最後に「完全修飾URL」
http://localhost:8081/NewMvc1/Home/Index/1
唯一無二のアクションから期待される結果の出力が得られます。
New Stuff
これはまったく正しくないようです。また、この同じアプリケーションからアクションの実行に失敗しました(関連しているかどうかはわかりません)。
Phil Haack の RouteDebugger を使用してここまでたどり着きました。これは、Optional パラメーターが欠落している場合は URL に一致しないことを指摘しましたが、それらのパラメーターが提供された場合は一致しました。