0

モデルクラス「顧客」があります。そのプロパティの 1 つはオブジェクトのコレクションで、たとえば「Order」です。編集中に、更新したい選択した顧客に関連付けられた注文のリストを変更できるようにしたいのですが、変更した顧客と変更した注文を送信すると、注文オブジェクトは null になります。編集時に変更された注文を送信する方法を教えてください。これが私のコードです

クラス

  public class Customer
    {
        public int CustomerId { get; set; }
        public string CustomerName { get; set; }
        public List<Order> Orders { get; set; }
    }

    public class Order
    {
        public int OrderId { get; set; }
        public string OrderName { get; set; }
    }

ビューを編集

@model MVCTestApp.Models.Customer
@{
    ViewBag.Title = "Edit";
}

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Customer</legend>
        @Html.HiddenFor(model => model.CustomerId)
        <div class="editor-label">
            @Html.LabelFor(model => model.CustomerName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.CustomerName)
            @Html.ValidationMessageFor(model => model.CustomerName)
        </div>
        @foreach (var order in Model.Orders)
        {
            <div class="editor-label">
                @Html.Label(order.OrderName)
            </div>
            <div class="editor-field">
                @Html.Editor(order.OrderName, new { id = order.OrderId })
            </div>
        }
        <p><input type="submit" value="Save" /> </p>
    </fieldset>
}

送信された編集済みビュー

ここに画像の説明を入力

ここに画像の説明を入力

4

2 に答える 2

0

次のように実際に注文を取得することをお勧めします:( order_OrderName がフォームに入力された入力の名前であるかどうかを確認します。たとえば、firebug などでソースを参照してください)

public ActionResult Edit(int id, string[] order_OrderName , Customer customer )
{
  //////
}
于 2013-04-17T07:10:05.357 に答える