我很好奇,想知道接近以下情形的最佳方式:如何綁定具有子視圖模型屬性的ViewModel?
public class LittleThingViewModel
{
public string Id{ get; set; }
public string Name { get; set; }
public string Location { get; set; }
}
public class BigThingViewModel
{
public LittleThingViewModel little1 {get; set; }
public LittleThingViewModel little2 {get; set; }
public string propA {get; set; }
public string propB {get; set; }
public string propC {get; set; }
}
在最初創建我的控制器的動作,我填充兩個LittleThingViewModels,將它們分配到一個新的BigThingViewModel,並把它傳遞給strongly-鍵入視圖。然後我使用EditorFor來渲染BigThing屬性A,B和C的編輯控件。
什麼是自動將LittleThingViewModels呈現到窗體的最佳技術,當我回發到控制器時,它會自動綁定? (我的目標是隻顯示名稱,並保持隱藏在其他屬性)
public ActionResult Create(BigThingViewModel b)
我發現我除了呈現A,B和C的屬性兩個LittleThing子的ViewModels的每一個人財產POST期間,它成功地結合BigThingViewModel:
Html.DisplayFor(model=>model.little1.Name)
Html.HiddenFor(model=>model.little1.Name)
Html.HiddenFor(model=>model.little1.Id)
Html.HiddenFor(model=>model.little1.Location)
有沒有一種技術,可以讓我呈現的標籤,以及隱藏要素自動,而不必每次都做他們各自明確的?
喜歡的東西:
Html.RenderFor(model=>model.little1)
感謝
我有一個類似的視圖模型和我使用的是局部視圖來渲染它。它在一個表單中,當我的POST操作在提交時被調用時,我的等價於LittleThingViewModel的屬性不會被填充。我是否需要爲此實現自定義模型聯編程序? – 2011-06-07 19:49:26