음, 경로, 또는 TableRoutes와 asp.net MVC 작동합니다. 기본 경로는 {controller}/{action}/{id}
형식으로 생성됩니다.
따라서 작업 요청을 받으면 컨트롤러에서이 매개 변수를 id
매개 변수에서 다시 검색하고이 값을 사용하여 데이터베이스를 조회하고보기에 표시해야하는 모든 기록을 얻을 수 있습니다 . 당신은 또한 ID를 가져 Request.QueryString["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
}
하지만 asp.net의 MVC에서 좋은의 연습되지 않습니다 :이 liek 뭔가를 시도 할 수 있습니다. 당신은 당신의 행동에 매개 변수를 사용하고 그것을 사용할 수 있습니다. 당신의보기에
, 당신은 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>
요청이 ID를 통과하는 링크를 만들려면, 당신은 단지 Html.ActionLink
, 뭔가를 사용할 수 있습니다 처럼보기에 :
@Html.ActionLink("Text of You Link", "Action", "Controller", new { id = 5, another = 10 }, new { @class = "css class for you link" });
와 asp.net MVC는 Global.asax에에 살고 있고 routetable 다음은 apropriated 경로를 가진 a
태그를 렌더링합니다. 쿼리 문자열을 전달할 다른 매개 변수가있는 경우 another
매개 변수가있는 샘플에서했던 것처럼 추가 할 수도 있습니다.
거의 없지만 아주 좋습니다. 기본 경로를 사용하면 id를 단일 객체의 id로 처리해야합니다. url이 Home/Cooks/5 인 경우 5는 요리사의 ID 여야합니다. 비슷하게 URL이 Home/Recipes/3 인 경우 3은 조리법 3을 제외한 모든 조리법을 나타내야합니다. 홈/조리법 /? cookId = 5는 ID가 5 인 요리사의 모든 요리법을 반환해야합니다. –
예 @seanwoodward 당신이 맞습니다 +1. :). 의미 상으로는 id 매개 변수를 사용하여 친숙한 URL을 사용할 수 있다고 생각합니다. 나는 그것이가는 것이 가장 좋은 방법인지 잘 모르겠지만 그것은 나를 위해 잘 작동합니다. –