У меня, похоже, проблема с ASP.NET MVC в том, что если у меня есть несколько форм на странице, которые используют одно и то же имя в каждой, но в качестве разных типов (радио / скрытый / и т. Д.), То когда первая форма отправляет сообщение (я выбираю радиокнопку «Дата», например), если форма перерисовывается (скажем, как часть страницы результатов), у меня возникает проблема, связанная со скрытым значением SearchType на остальные формы изменяются на последнее значение переключателя (в данном случае SearchType.Name).
Ниже приведен пример формы для сокращения.
<% Html.BeginForm("Search", "Search", FormMethod.Post); %>
<%= Html.RadioButton("SearchType", SearchType.Date, true) %>
<%= Html.RadioButton("SearchType", SearchType.Name) %>
<input type="submit" name="submitForm" value="Submit" />
<% Html.EndForm(); %>
<% Html.BeginForm("Search", "Search", FormMethod.Post); %>
<%= Html.Hidden("SearchType", SearchType.Colour) %>
<input type="submit" name="submitForm" value="Submit" />
<% Html.EndForm(); %>
<% Html.BeginForm("Search", "Search", FormMethod.Post); %>
<%= Html.Hidden("SearchType", SearchType.Reference) %>
<input type="submit" name="submitForm" value="Submit" />
<% Html.EndForm(); %>
Результирующий источник страницы (это будет частью страницы результатов)
<form action="/Search/Search" method="post">
<input type="radio" name="SearchType" value="Date" />
<input type="radio" name="SearchType" value="Name" />
<input type="submit" name="submitForm" value="Submit" />
</form>
<form action="/Search/Search" method="post">
<input type="hidden" name="SearchType" value="Name" /> <!-- Should be Colour -->
<input type="submit" name="submitForm" value="Submit" />
</form>
<form action="/Search/Search" method="post">
<input type="hidden" name="SearchType" value="Name" /> <!-- Should be Reference -->
<input type="submit" name="submitForm" value="Submit" />
</form>
Пожалуйста, кто-нибудь еще с RC1 может это подтвердить?
Может быть, это потому, что я использую перечисление. Я не знаю. Я должен добавить, что я могу обойти эту проблему, используя теги input () для скрытых полей вручную, но если я использую теги MVC (<% = Html.Hidden (...)%>), .NET MVC заменяет их каждый раз.
Большое спасибо.
Обновление:
Сегодня я снова видел эту ошибку. Кажется, что это обрезает голову, когда вы возвращаете опубликованную страницу и используете MVC для установки скрытых тегов формы с помощью помощника HTML. Я связался с Филом Хааком по этому поводу, потому что я не знаю, куда еще обратиться, и я не верю, что это ожидаемое поведение, как указано Дэвидом.