MVC3非顺序隐藏输入索引需要先来吗?

时间:2011-08-10 14:00:40

标签: asp.net-mvc asp.net-mvc-3 model-binding defaultmodelbinder

用于模型绑定的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" />

2 个答案:

答案 0 :(得分:3)

不,表单字段的顺序无关紧要,它们出现在html页面上的位置。 MVC3最重要的因素是字段名称必须与控制器/操作参数的名称匹配。

但是,如果您有两个具有相同名称的字段,则只会将一个值返回到您的操作中。

答案 1 :(得分: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)
}