簡體   English   中英

如何在MVC3中的回發上獲取viewmodel上的子集合?

[英]How to get subcollections on viewmodel on postback in MVC3?

Phil Haack有一篇文章描述了如何進行設置,因此默認模型綁定器將綁定到帖子后面的集合:

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

我遇到的問題是我不只是嘗試將一個集合發送回Controller操作,而是一個帶有集合的ViewModel。

我有一個基本上看起來像這樣的課程:

public class MyViewModel
{
public int IncidentNumber { get; set; }
public string StoreId { get; set; }
public string RepId { get; set; }
public string OrderStatus { get; set; }
public CustomerViewModel Customer { get; set;
//... other properties and SelectLists for binding

public IEnumerable<OrderItemViewModel> OrderItemViewModels { get; set; }

我實際上可以在回發中獲取CustomerViewModel數據,但OrderItemViewModels列表為空。 我如何取回這些? 菲爾的文章沒有幫助那里。

我有一個類似的問題, MVC綁定到帶有list屬性的模型忽略了通過在視圖中使用以下代碼解決的其他屬性

<div class="editor-field">
@for (int i = 0; i < Model.MyCollection.Count(); i++)
{
    @Html.HiddenFor(m => m.MyCollection[i].Id)
    @Html.HiddenFor(m => m.MyCollection[i].ParentId)
    @Html.HiddenFor(m => m.MyCollection[i].Name)
    @Html.TextBoxFor(m => m.MyCollection[i].Value)
}
</div>

使用編輯器模板:

@model MyViewModel
@using (Html.BeginForm())
{
    ... some input fields 

    @Html.EditorFor(x => x.OrderItemViewModels)

    <input type="submit" value="OK" />
}

然后在相應的編輯器模板中,它將自動為OrderItemViewModels集合的每個元素呈現( ~/Views/Shared/EditorTemplates/OrderItemViewModels.cshtml ):

@model OrderItemViewModels
<div>
    @Html.LabelFor(x => x.Prop1)
    @Html.EditorForFor(x => x.Prop1)
</div>
<div>
    @Html.LabelFor(x => x.Prop2)
    @Html.EditorForFor(x => x.Prop2)
</div>
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM