¿Por qué ASP.NET MVC Html.CheckBox genera dos ENTRADAS con el mismo nombre?
¿Por qué en el mundo hace la línea:
<%= Html.CheckBox("ForSale", Model.Product.ForSale)%> For Sale
resulta en el siguiente HTML:
<input id="ForSale" name="ForSale" type="checkbox" value="true" />
<input name="ForSale" type="hidden" value="false" />
For Sale
Ahora cada vez que marque la casilla y accedo aRequest.Form["ForSale"]
, Me sale la ridícula respuesta de"true,false"
. ¿Se supone que debo analizar eso?
Este campo oculto no aparece para los otros controles HtmlHelper, entonces ¿por qué lo hace para CheckBox?
¿Cómo desactivo esta "característica" estúpida? O hizo elHtmlHelper
acaba de superar su utilidad?
Actualizar
De la respuesta a continuación, parece que hay algo de lógica detrás de esto. He preparado un pequeño método de extensión para no tener que pensarlo (gracias a @ eu-ge-ne):
public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req,
string name) {
return Convert.ToBoolean(req.Form.GetValues(name).First());
}