1

メイン グリッドビューで行を選択した後にユーザーが関連データを挿入できるようにする子ビューを作成する必要があります。

子ビューは、親行を示す ID を受け取る必要があります。

このパラメーターを渡すにはどうすればよいですか? ビューバッグ?

PS: ビューとコントローラーは異なり、別のコントローラーの Index アクションへの Html.ActionLink を使用して子ビューが開かれます。

4

3 に答える 3

0

別のアクションを開くため、クエリ文字列として渡します。

于 2012-09-10T13:34:20.027 に答える
0

いくつかの方法でパラメーターを渡すことができます。

ViewBag.MyParam = "1";

ViewData("MyParam") = "1";

TempData("MyParam") = "1";

注: これは VB なので、C# は少し異なります。

それ以外の場合は、Rob が述べたように、クエリ文字列を介して渡すことができます。

于 2012-09-10T13:35:37.277 に答える
0

子ビューを呼び出すアクション メソッドに、親の 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" />
}
于 2012-09-10T13:47:20.593 に答える