1

この質問を続けると、個人用にリストされたすべての車両を含むフォームがあり、車両フィールドは編集可能であり、保存アクションに正常にポストバックされています。

UpdateModelを使用してデータを保存したいのですが、作成方法がわかりません。これが今の私の保存アクションです:

<ActionName("Edit"), AcceptVerbs(HttpVerbs.Post)> _
Function Save(ByVal form As Person, ByVal vehicles() As Vehicle) As ActionResult
    Dim original = From v In MyDataContext.Vehicles Where v.person_id = Person.person_id
    For Each item In original
        For i = 0 To vehicles.Count - 1
            If vehicles(i).vehicle_id = item.vehicle_id Then
                UpdateModel(item, New String() {"license_nbr", "color"})
                Exit For
            End If
        Next
    Next
    MyDataContext.SubmitChanges()
    Return RedirectToAction("Index", "Home")
End Function

これを実行しても何も保存されず、UpdateModelはエラーをスローしません。UpdateModelは、各更新に使用する車両配列内のアイテムを認識していないため、魔法を機能させるためにもう少し方向性を与える必要があると思います。

UpdateModelの3番目のパラメーターとしてValueProviderResultを指定する必要がありますか?もしそうなら、どうすれば車両(i)から1つを作成できますか?私はこれをどのように設定したかについて完全にベースから外れていますか?

4

1 に答える 1

3

フォーム フィールドからプロパティを更新するだけの UpdateModel を使用する理由は、フォーム フィールドが既にモデル データに処理されている場合です。vehicleからの値をitem直接代入することはできませんか?

For Each item In original
    For i = 0 To vehicles.Count - 1
        If vehicles(i).vehicle_id = item.vehicle_id Then 
           item.license_nbr = vehicles(i).license_nbr
           item.color = vehicles(i).color
           Exit For
        End If
    Next
Next
于 2009-04-03T17:52:37.877 に答える