사용자가 기본 그리드 뷰에서 행을 선택한 후 관련 데이터를 삽입 할 수있는 하위 뷰를 만들어야합니다.인덱스 작업에 매개 변수 전달
하위 뷰는 부모 행을 나타내는 ID를 수신해야합니다.
어떻게이 매개 변수를 전달할 수 있습니까? ViewBag?
추 신 : 뷰와 컨트롤러가 다르고 다른 컨트롤러의 인덱스 동작에 Html.ActionLink를 사용하여 하위 뷰가 열립니다.
사용자가 기본 그리드 뷰에서 행을 선택한 후 관련 데이터를 삽입 할 수있는 하위 뷰를 만들어야합니다.인덱스 작업에 매개 변수 전달
하위 뷰는 부모 행을 나타내는 ID를 수신해야합니다.
어떻게이 매개 변수를 전달할 수 있습니까? ViewBag?
추 신 : 뷰와 컨트롤러가 다르고 다른 컨트롤러의 인덱스 동작에 Html.ActionLink를 사용하여 하위 뷰가 열립니다.
자식 뷰를 호출하는 작업 메서드에 부모의 ID를 매개 변수로 전달하십시오.
@Html.ActionLink("Add Related Data","Add",new { @id=364})
는보기
에서 자녀의 행동에 동적 값으로 364을 교체 ID에서 부모 오브젝트를 취득하고 보여 그 아이 뷰입니다. ViewModel이 자식 뷰에 대해 좋아한다고 가정합니다.
public class ChildDetails
{
public int ID { set;get;}
public string Note { set;get;}
public int ParentID { set;get;}
public string ParentName { set;get;}
}
하위 세부 정보에 대한 부모 세부 정보를 가져오고 ViewModel에서 관련 속성 값을 설정합니다.
public ActionResult Add(int id)
{
var parent=yourRepositary.Get(id);
ChildDetails childViewModel=new ChildDetails();
childViewModel.ParentID=id;
childViewModel.Name=parent.Name;
return View(childViewModel);
}
자녀보기가 강하게 ChildDetails
클래스에 바인더 제본됩니다
@model ChildDetails
<h2>@Model.ParentName</h2>
@using(Html.BeginForm())
{
@Html.TextBoxFor(x=>x.Note)
@Html.HiddenFor(x=>x.ParentId)
<input type="submit" />
}
내가 대신 새로운 액션을 만드는, 하위 항목을 나열하는 기존의 색인 작업을 사용하고 싶습니다
다른 작업을 열고 있기 때문에 쿼리 문자열로 전달하십시오.
여러 가지 방법으로 매개 변수를 전달할 수 있습니다.
ViewBag.MyParam = "1";
ViewData("MyParam") = "1";
TempData("MyParam") = "1";
참고 : 이것은 VB이므로 C#은 약간 다릅니다.
그렇지 않으면 Rob이 말한 것처럼 쿼리 문자열을 통해 전달할 수 있습니다.
. 가능한가? –
기존 작업을 사용할 수 있습니다. 나는 그것을 일반적인 예로 만들기 위해 add 메소드를 작성했다. – Shyju