0

すべての非表示フィールドの入力を自動生成するのは本当ですか。この拡張メソッドのようなものが欲しいHtml.AutoGenerateHiddenFor(viewmodel)

そして出力:

<input type="hidden" name="field1" value="123"  />
<input type="hidden" name="field2" value="1234" />
<input type="hidden" name="field3" value="1235" />
4

2 に答える 2

1

MvcContribの Html.Serializeメソッドを使用できます。

@using (Html.BeginForm())
{
    @Html.Serialize(Model)
    <button type="submit">OK</button>
}

次に、ポストバックを受信して​​いるコントローラーアクション内で:

[HttpPost]
public ActionResult SomeAction([Deserialize] MyViewModel model)
{
    ...
}

従来のWebFormsのViewStateを使用してモデルをシリアル化し、シリアル化されたモデルを含む単一の非表示の入力フィールドを出力します。これは、従来のViewStateをエミュレートします。

別の解決策は、モデルをバックエンドに永続化してから、このバックエンドからモデルを取得できるようにする一意のIDを含む単一の非表示の入力フィールドをフォーム内に配置することです。

于 2012-10-09T14:14:39.573 に答える