なぜ世界で行ない:なぜASP.NET MVC Html.CheckBoxは同じ名前の2つのINPUTを出力しますか?
<%= Html.CheckBox("ForSale", Model.Product.ForSale)%> For Sale
結果、次のHTMLで:私はボックスとアクセスRequest.Form["ForSale"]
をチェックするたびに
<input id="ForSale" name="ForSale" type="checkbox" value="true" />
<input name="ForSale" type="hidden" value="false" />
For Sale
は今、私は"true,false"
のとんでもない答えを得ます。私はそれを解析するはずですか?
この隠しフィールドは、他のHtmlHelperコントロールには表示されません。そのため、CheckBoxではどうしてですか?
この愚かな「機能」をオフにするにはどうすればよいですか?HtmlHelper
はその有用性を凌駕しましたか?
更新
以下の答えから、この背後にあるいくつかのロジックがあるようです。
public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req,
string name) {
return Convert.ToBoolean(req.Form.GetValues(name).First());
}
Request.Formを使用している場合は、間違っている可能性があります。 –
+1 - 先日、この問題に遭遇しました。彼らが役に立つようにしようとしていたようだが、ちょうどチェックボックスがどのように働くべきかを実際に知っている私たちの人たちを悩ませた。 –
@mgrovesの心は私がおそらく間違っていることを私に教えてくれる答えを投稿していますか? –