次のようなモデルがあります。
Public Class MyModel
Public Property ID As Integer
Public Property Name As String
Public Property TypeID As Integer
Public Property Description As String
Public Property MyObjectList As List(Of MyObject)
Public Property MyObjectList2 As List(Of MyObject)
少し似ている私のビュー(便宜上簡略化/編集):
@Using Html.BeginForm()
@Html.HiddenFor(Function(Model) Model.ID)
@Html.EditorFor(Function(Model) Model.Name)
@Html.HiddenFor(Function(Model) Model.TypeID)
@Html.EditorFor(Function(Model) Model.Description)
@Html.EditorFor(Function(Model) Model.MyObjectList)
@Html.EditorFor(Function(Model) Model.MyObjectList2)
MyObject のエディター テンプレート (ここでも大幅に編集されています):
<div class="myClass" id="MyObject@(Model.ID)">
@Html.HiddenFor(Function(modelItem) Model.ID)
@Html.TextBoxFor(Function(modelItem) Model.Name)
@Html.TextBoxFor(Function(modelItem) Model.Description)
一部の JavaScript を介して、ユーザーはフォームへの入力中にさらに MyObject エントリを追加できます。
そして、私のビューでは、完成したフォームを AJAX 経由でポストバックする保存機能があります。これは次のようになります。
$('#Save').click(function () {
$.post("/MyModel/Save", $('form').serialize(), function (data) {
if (data.Success) {
}
else {
}
});
});
これはすべてうまくいきます。
ここで、MyObjectList の 1 つだけのフィールド内のすべての情報をポストバックする別のメソッドが必要です。フォームの特定の部分内のすべてのフォーム フィールドに制限できる、フォームで使用する .serialize() メソッドのようなものはありますか? それとも、すべてのデータを含む別の JSON オブジェクトを構築して、それを返す必要がありますか? それとも、すべてを返して、vb で必要なものを除外する必要がありますか?
ありがとう