私は、いくつかの例と組み合わせた基本的なプロジェクトテンプレートを使用してMVC3を学習しているところです。順調に進んでいますが、コントローラーを実装しようとしていますが、いくつか問題があります。
これまでのところ、_Layout.cshtmlファイルを変更して、指定されたルートが定義された新しいリンクを作成しました。
<header>
<div id="title">
<h1>My MVC Application</h1>
</div>
<div id="logindisplay">
@Html.Partial("_LogOnPartial")
</div>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.RouteLink("Contracts", "Contract")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
</nav>
</header>
そして私のglobal.asax.csファイルは次のとおりです。
routes.MapRoute(
"Contract",
"Contract",
new { controller = "Contract", action = "List", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
これは、コントラクトコントローラーから期待されるアクションビューを返すため、正常に機能します。
ただし、これを変更して、リストアクションにIDを受け入れるようにします。Listメソッドを変更してパラメーターを受け入れる必要があることはわかっていますが、問題はありませんが、ルートと、このパラメーターを_Layout.cshtmlファイルのRouteLinkからListメソッドに渡す方法に問題があります。私はいくつかのことを試しましたが、このビットは本当に私を困惑させています。
AccountControllerを介してログインしたユーザーからIDを渡すつもりですが、これをより簡潔にするために、それについて別の質問をします。
どうもありがとうございます。