Pourquoi dans le monde de la ligne:
<%= Html.CheckBox("ForSale", Model.Product.ForSale)%> For Sale
résultat dans le code HTML suivant:
<input id="ForSale" name="ForSale" type="checkbox" value="true" />
<input name="ForSale" type="hidden" value="false" />
For Sale
Maintenant, chaque fois que j'ai cocher la case et de l'accès Request.Form["ForSale"]
, j'obtiens le ridicule réponse de l' "true,false"
. Suis-je censé analyser cela?
Ce champ caché n'apparaît pas pour les autres HtmlHelper contrôles, alors pourquoi ne fait-il pour Case?
Comment dois-je faire cela stupide "fonction" off? Ou est ce que l' HtmlHelper
seulement dépasser son utilité?
Mise à jour
À partir de la réponse ci-dessous, il semble qu'il y a une logique derrière tout cela. J'ai préparé un peu de la méthode d'extension donc je n'ai pas à y penser (merci à @ue-ge-ne):
public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req,
string name) {
return Convert.ToBoolean(req.Form.GetValues(name).First());
}