Должны ли первыми появляться непоследовательные скрытые входные индексы MVC3? - PullRequest
4 голосов
/ 10 августа 2011

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 ]

3 голосов
/ 10 августа 2011

Пока скрытые поля находятся внутри формы, не должно иметь значения порядок, в котором они размещены. Пожалуйста, смотрите пример кода ниже. Обратите внимание, как скрытые поля размещаются в любом месте формы.

@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)
}
3 голосов
/ 10 августа 2011

Нет, порядок полей формы не имеет значения, где они появляются на html-странице.Наиболее важным фактором для MVC3 является то, что имя полей должно совпадать с именем вашего контроллера / параметра действия.

Однако если у вас два поля с одинаковым именем, в ваше действие будет возвращено только одно значение.

...