3

MVC3非连续的指数隐藏输入的模型绑定..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" /> 

回答

3

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

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

+0

你的意思是像复选框/布尔例如?它只接受第一个还是最后一个?谢谢。 – Benjamin

+0

它只会接受第一个或最后一个。这取决于哪一个首先被发送回服务器。我不确定哪个。 – Jay

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) 
}