Почему ASP.NET MVC Html.CheckBox выводит два входа с одинаковым именем?
Почему в мире делает линию:
<%= Html.CheckBox("ForSale", Model.Product.ForSale)%> For Sale
результат в следующем HTML:
<input id="ForSale" name="ForSale" type="checkbox" value="true" />
<input name="ForSale" type="hidden" value="false" />
For Sale
Теперь, когда я проверяю флажок и доступRequest.Form["ForSale"]
Я получаю нелепый ответ"true,false"
, Я должен разобрать это?
Это скрытое поле не отображается для других элементов управления HtmlHelper, так почему оно используется для CheckBox?
How do I turn this stupid "feature" off? Или сделалHtmlHelper
просто перерасти свою полезность?
Update
Из ответа ниже кажется, что за этим стоит некоторая логика. Я подготовил небольшой метод расширения, поэтому мне не нужно об этом думать (спасибо @ eu-ge-ne):
public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req,
string name) {
return Convert.ToBoolean(req.Form.GetValues(name).First());
}