Кажется, у меня проблема с ASP.NET MVC в том, что, если у меня есть несколько форм на странице, которая использует одно и то же имя в каждом из них, но как разные типы (радио/скрытые/etc), тогда, когда первые записи формы (например, я выбираю "Дату" ), если форма повторно отображается (например, как часть страницы результатов), у меня, похоже, проблема, что скрытое значение 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 подтвердить это?
Может быть, потому что я использую перечисление. Я не знаю. Я должен добавить, что я могу обойти эту проблему, используя теги "manual" input() для скрытых полей, но если я использую теги MVC (<% = Html.Hidden(...)% > ),.NET MVC заменяет их каждый раз.
Большое спасибо.
Update:
Я видел эту ошибку снова сегодня. Похоже, что это всплывает, когда вы возвращаете опубликованную страницу и используете MVC для скрытых форм с помощью хелпера Html. Я связался с Phil Haack об этом, потому что я не знаю, куда еще повернуть, и я не считаю, что этого следует ожидать как указано Дэвидом.