Почему в мире появляется строка:
<%= 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?
Как отключить эту глупую "функцию"? Или HtmlHelper
просто перерос ее полезность?
Обновление
Из приведенного ниже ответа кажется, что за этим стоит некоторая логика. Я подготовил небольшой метод расширения, поэтому мне не нужно об этом думать (спасибо @ eu-ge-ne):
public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req,
string name) {
return Convert.ToBoolean(req.Form.GetValues(name).First());
}