1

在我的模型中,我实际上有一个来自另一个模型的项目列表。

我想为列表中每个项目的每个属性显示一个 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 。但我不知道我怎么能这样做......有人可以帮我解决这个问题吗?

非常感谢!

4

3 回答 3

1
@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" }
        )
    }
}
于 2013-03-04T17:13:44.933 回答
0

1) 创建一个名为“ObjOrderDetailInfo.cshtml”的视图。这个视图应该是强类型的ObjOrderDetailInfo,并且你需要ObjOrderDetailInfo在视图中放入控件来编辑(如果你愿意,可以使用“编辑”脚手架模板)。

2)将上面的View放在Views/Shared/EditorTemplates文件夹中。

3) 在您的 ObjOrderInfo 视图中,执行以下操作:

@Html.EditorFor(model => model.m_ListObjOrderDetail)
于 2013-03-04T17:33:50.560 回答
0

像这样简单的东西应该可以工作:

@using (Html.BeginForm())
{
    <ul>
    @foreach (var item in Model.m_ListObjOrderDetail)
    {
        <li>@Html.DisplayFor(m => item)</li>
    }
    </ul>
}
于 2013-03-04T17:14:39.813 回答