0

マスター モデルのビューを定義し、その中で詳細部分ビューを呼び出しました。マスター モデルにはリストが含まれています。ページがサーバーにポスト バックされたときに、部分ビューからデータを取得するにはどうすればよいですか? これが私のコードです:

注文モデル:

public string ShipName { get; set; }
public string ShipAddress { get; set; }
public IList<OrderDetailModel> OrderDetailModels { get; set; }

OrderDetailModel :

public int OrderID { get; set; }
public int Quantity { get; set; }
public int UnitPrice { get; set; }

public OrderModel OrderModel { get; set; }

オーダービュー

     @model MvcFirstSample.Models.OrderModel
    @{
        ViewBag.Title = "create";
    }

    <h2>create</h2>

    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(true)


        //.....

    @Html.Partial("OrderDetail")
}

そして、これはOrderDetailViewの私の部分的なビューです:

@model MvcFirstSample.Models.OrderDetailModel
@{
    ViewBag.Title = "OrderDetail";
}
Partial view OrderDetail
<div class="editor-label">
    @Html.LabelFor(model => model.Quantity)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Quantity)
    @Html.ValidationMessageFor(model => model.Quantity)
</div>
<div class="editor-label">
    @Html.LabelFor(model => model.UnitPrice)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.UnitPrice)
    @Html.ValidationMessageFor(model => model.UnitPrice)
</div>
4

1 に答える 1

2

このコードを試していただけますか?

@model MvcFirstSample.Models.OrderModel
    @{
        ViewBag.Title = "create";
    }

    <h2>create</h2>

    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(true)


        //.....

    @Html.Partial("OrderDetail", Model.OrderDetailModels)
}

部分ビューは

@model List<MvcFirstSample.Models.OrderDetailModel>
@{
    ViewBag.Title = "OrderDetail";
}
@* we need to looping the list of Order details here *@

最後に、OrderModel タイプのカスタム モデル バインダーを追加してください。

すぐにサンプルコードを追加します

于 2013-05-20T12:16:23.327 に答える