簡體   English   中英

根據模型列表中的項目顯示字段

[英]Display fields based on items in a list in my model

在我的模型中,我實際上有一個來自另一個模型的項目清單。

我想為列表中每個項目的每個屬性顯示一個TextBoxFor(disabled),有點像購物車盒子。

這是我的模型的一部分:

public class ObjOrderInfo
{
    (...)
    public List<ObjOrderDetailInfo> m_ListObjOrderDetail { get; set; }
}

這是我觀點的一部分:

@using (Html.BeginForm())
{
    (...)
    @foreach (var item in Model.m_ListObjOrderDetail)
    {
        (insert code here)
    }
}

基本上,我的另一個對象(ObjOrderDetailInfo)具有數量,價格和另一個對象等屬性。 我總是想為每個這些屬性顯示一個textboxfor或displayfor。 但是我對如何做到這一點一無所知...有人可以幫助我嗎?

非常感謝你!

@using (Html.BeginForm())
{
    (...)
    @for (var i = 0; i < Model.m_ListObjOrderDetail.Count; i++)
    {
        @Html.DisplayFor(x => x.m_ListObjOrderDetail[i].SomeProperty)

        @Html.TextBoxFor(x => x.m_ListObjOrderDetail[i].SomeOtherProperty)

        @Html.TextBoxFor(
            x => x.m_ListObjOrderDetail[i].YetAnotherProperty, 
            new { @readonly = "readonly" }
        )
    }
}

像這樣簡單的事情應該起作用:

@using (Html.BeginForm())
{
    <ul>
    @foreach (var item in Model.m_ListObjOrderDetail)
    {
        <li>@Html.DisplayFor(m => item)</li>
    }
    </ul>
}

1)創建一個名為“ ObjOrderDetailInfo.cshtml”的視圖。 該視圖應針對ObjOrderDetailInfo進行強類型化,並且您將希望放入控件以在視圖中編輯ObjOrderDetailInfo (如果需要,請使用“編輯”支架模板)。

2)將上面的視圖放在Views / Shared / EditorTemplates文件夾中。

3)在您的ObjOrderInfo視圖中,執行以下操作:

@Html.EditorFor(model => model.m_ListObjOrderDetail)

暫無
暫無

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

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