我似乎在使用 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 标签 (),.NET MVC 会替换它们每次。
非常感谢。
Update:
我今天又看到这个bug了。当您返回发布的页面并使用 MVC 设置隐藏表单标签和 Html 帮助器时,这似乎会产生影响。我已经联系过菲尔·哈克 http://haacked.com关于这一点,因为我不知道还能转向哪里,而且我不认为这应该是大卫指定的预期行为。