私は ASP.NET MVC 3 を学ぼうとしてきましたが、ルーティングの側面以外は順調に進んでいます。
メインページに ActionLink があります:
@Html.ActionLink("Contracts", "List", "Contract",
new { User.Identity.Name, page=1 })
これは、ContractController でこのメソッドにアクセスするためのものです。
public ViewResult List(string user, int page = 1)
{
//snip
}
私のルートは次のとおりです。
routes.MapRoute(
null,
"Page{page}",
new { Controller = "Contract", action = "List" }
);
routes.MapRoute(
null,
"Page{page}",
new { Controller = "Contract", action = "List", user = "", page = 1 }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
コントローラーの「ホーム」でアクション「リスト」が見つからないため、リンクは 404 エラーを返します。これは明らかに、最初のルートのいずれも使用しなかったことを意味します。
ActionLink にパラメーターを追加しようとする前にすべてが機能していたので、基本的に何が間違っているのでしょうか?
どうもありがとう。