Почему в мире есть строка:
<%= 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());
}