2011-03-23 4 views
0

그래서 저는 asp.net MVC에 상당히 익숙합니다. 누군가가 데이터베이스에서 항목의 목록을 요청하면, 컨트롤러는 뷰가 알고있는 항목을 얻고asp.net mvc 개체에서 작업

View(items); 

와 함께보기로 보냅니다 그들은을 통해 무엇 :

@model IEnumerable<SomeType> 

다음 목록입니다 를 통해 표시 :

foreach (var item in Model) { 
    <tr><td>@Html.ActionLink("Edit", "Edit", new { id = item.id })<td>@item.id</td><td>@item.name</td></tr> 
} 

하지만 난 채우기 위해 사용하는 개체를 전달할 수있는 방법, 나는 (내가 아직 편집 페이지를 구현하지 않은 일부 컨트롤러를 유발하는 것 같아요) 편집을 클릭합니다 말할 수 일 특정 행에서 편집 컨트롤러에? 아니면 개체 ID를 데이터베이스를 통해 다시 가져와야합니까? 아니면 그냥 그 모든 새로운 {}을 변수로 채우면 그들은 그런 식으로 전달됩니까?

+0

http://www.asp.net/mvc – UpTheCreek

답변

0

예, Id 매개 변수를 사용하여 해당 개체를 다시 쿼리해야합니다.

public ActionResult Edit(int id) 
{ 
    var entity = db.Query(id); 
    return View(entity); 
} 

HTTP is stateless 있음을 기억하십시오. 즉, 첫 번째 요청 (항목을 나열)은 두 번째 요청과 관련이 없습니다 (주어진 항목의 편집 양식을 보는 것).

0

컨트롤러 액션 메소드에서 편집 할 엔티티의 ID를 얻고 그 편집 메소드 내에서 데이터베이스에서 객체를 가져 와서 편집하기 위해 편집보기에서 사용자에게 제시해야합니다.