まあ、asp.net mvc はルート、または TableRoutes で動作します。デフォルト ルートは次の形式で作成されます: {controller}/{action}/{id}
.
したがって、アクションでリクエストを取得すると、アクションのパラメーターからこの id を取得しid
(コントローラーで)、この値を使用してデータベースにヒットし、ビューに表示する必要があるすべてのレコードを取得できます。あなたはこれに似た何かを試すことができます:
public ActionResult Recipes(string id)
{
IEnumerable<Recipe> list = _repository.GetRecipeByCookId(id); // this method should return list of Recipes
return View(list); // return your View called "Recipes" passing your list
}
Id を取得するために使用することもできますRequest.QueryString["Id"]
が、asp.net mvc では適切な方法ではありません。アクションにパラメーターを使用して使用できます。
ビューでは、次のように入力IEnumerable<Recipe>
してテーブルに表示できます。
@model IEnumerable<Recipe>
<table>
@foreach(var recipe in Model)
{
<tr>
<td>@recipe.Name</td>
<td>@recipe.CookId</td>
<td>@recipe.OtherProperties</td>
</tr>
}
</table>
Html.ActionLink
リクエストに対してこの ID を渡すリンクを作成するには、View で次のように使用できます。
@Html.ActionLink("Text of You Link", "Action", "Controller", new { id = 5, another = 10 }, new { @class = "css class for you link" });
また、asp.net mvc は、global.asaxa
で設定されたルート テーブルに従って、適切なルートを持つタグをレンダリングします。クエリ文字列に渡す他のパラメーターがある場合は、パラメーターを使用してサンプルで行ったように追加することもできanother
ます。