我似乎遇到了 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的其他人可以确认吗?
也许是因为我使用的是枚举。我不知道。我应该补充一点,我可以通过对隐藏字段使用“手动”输入()标签来规避这个问题,但是如果我使用 MVC 标签(<%= Html.Hidden(...) %>),.NET MVC 会替换它们每次。
非常感谢。
更新:
今天又看到了这个bug。当您返回已发布的页面并使用 MVC 设置隐藏表单标签和 Html 帮助程序时,这似乎会引起人们的注意。我已经就此事联系了Phil Haack,因为我不知道还能去哪里,而且我不认为这应该是 David 指定的预期行为。