2011-05-25 53 views

回答

0

的關鍵是使用下面的語法在您的視圖爲您的孩子收集物品:

data.Children.Index and data.Children[index].Properties 

下面是一個簡單的例子:

型號:

public class Parent 
{ 
    public int FieldA { get; set; } 
    public string FieldB { get; set; } 
} 

public class Child 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public class ParentChildViewModel 
{ 
    public Parent Master { get; set; } 
    public List<Child> Children { get; set; } 
} 

控制器:

public ActionResult Edit() 
{ 
    return View(new ParentChildViewModel()); 
} 

[HttpPost] 
public ActionResult Edit(ParentChildViewModel data) 
{ 
    // Save your objects 
} 

查看:

@model ParentChildViewModel 
... 
@using(Html.BeginForm()) 
{ 
    @Html.TextBoxFor(x => x.Master.FieldA); 

    @{ int index = 0; } 
    @foreach(var c in Model.Children) 
    { 
    @Html.Hidden("data.Children.Index", index); 
    @Html.TextBox("data.Children[" + index + "].Name") 
    @{ index++; } 
    } 
} 

在您的控制器,您將收到的。孩子屬性更改名稱屬性和對的.master父所做的更改作出。唯一的技巧是data.Children語法其中data是Controller上變量名稱的名稱。 data.Children.Index是每個孩子都需要的,當然你必須增加索引。

希望有所幫助。