0

私のデフォルト ルートは非常に単純ですが、ルート全体を完全に修飾しないと、ページが正しく読み込まれません。

私が使用しているルートは次のとおりです。

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 に一致しないことを指摘しましたが、それらのパラメーターが提供された場合は一致しました。

4

1 に答える 1