4

モデル バインディング用の MVC3 非シーケンシャル インデックス非表示入力。

<input type="hidden" name="Index" value="whatever" />

投稿される他の関連する入力の前、後、または途中にある場合は問題になりますか?
投稿されたデータの最終的な場所は重要ですか?
たとえば、それらをすべてひとまとめにして機能することはありますか?

<input type="text" name="[A].Id" value="1" />
<input type="text" name="[B].Id" value="2" />
<input type="hidden" name="Index" value="A" />
<input type="hidden" name="Index" value="B" />
4

2 に答える 2

3

非表示のフィールドがフォームの内側にある限り、それらが配置される順序は重要ではありません。以下のコードサンプルをご覧ください。隠しフィールドがフォーム内のどこかに配置されていることに注目してください。

@using (Html.BeginForm())
{
    @Html.ValidationSummary(false, "Please correct the following errors")

    @Html.HiddenFor(m => m.CoolStuffId)


    @Html.Partial("_EditCoolStuff", Model)

    <fieldset class="ui-grid-a">
        <div class="ui-block-a"><a data-role="button" href="@Url.Action("ActionPlan", "Store", new { id = Model.StoreID })">Cancel</a></div> 
        <div class="ui-block-b"><button type="submit" data-theme="a">Submit</button></div> 
    </fieldset> 
     @Html.HiddenFor(m => m.TypeId)
}
于 2011-08-10T14:06:06.283 に答える
3

いいえ、フォーム フィールドの順序は関係ありません。また、HTML ページのどこに表示されるかも関係ありません。MVC3 の最も重要な要素は、フィールドの名前がコントローラー/アクション パラメーターの名前と一致する必要があることです。

ただし、同じ名前のフィールドが 2 つある場合、アクションに返される値は 1 つだけです。

于 2011-08-10T14:03:42.043 に答える