有人可以推荐一本好的书或教程来学习HtmlHelper类,特别是方法Html.CheckBox()
和Html.Radio()
吗?
答案 0 :(得分:3)
希望这些信息对您有所帮助....我在复选框上做了足够的R& D,创建了额外的html控件。
始终使用Html.CheckBox()重载方法来创建复选框控件。
请注意,复选框helper(Html.CheckBox())呈现两个输入控件。首先,它按照您的预期呈现一个复选框控件,然后呈现一个同名的隐藏输入控件。这是为了解决这样一个事实:当取消选中复选框时,浏览器不会为它们提交任何值。具有隐藏的输入控件意味着当取消选中复选框时,MVC框架将接收隐藏字段的值(即,false)。
来自:Apress.Pro.ASP.NET.MVC.Framework。
复选框没有标签。因此,将带有值的属性的html标签标记添加为“复选框名称”
<%= Html.CheckBox("chkAccept1")%><label for="chkAccept1">Accept Terms & Conditions</label>
<input id="chkAccept1" name="chkAccept1" type="checkbox" value="true" /><input name="chkAccept1" type="hidden" value="false" /><label for="chkAccept1">Accept Terms & Conditions</label>
<%= Html.CheckBox("chkAccept2", true )%><label for="chkAccept2">Accept Terms & Conditions</label>
<input checked="checked" id="chkAccept2" name="chkAccept2" type="checkbox" value="true" /><input name="chkAccept2" type="hidden" value="false" /><label for="chkAccept2">Accept Terms & Conditions</label>
<%= Html.CheckBox("chkAccept3", false, new { @class="error", @client_selector="alphanumeric" }) %><label
for="chkAccept3">Accept Terms & Conditions</label>
<input class="error" client_selector="alphanumeric" id="chkAccept3" name="chkAccept3" type="checkbox" value="true" /><input name="chkAccept3" type="hidden" value="false" /><label for="chkAccept3">Accept Terms & Conditions</label>
答案 1 :(得分:2)
什么? Helpers CheckBox和RadioButton包含在asp.net mvc 1.0中。如果您想了解如何制作,那么您可以从codeplex下载源代码。
编辑:您还可以查看此tutorial,其中介绍了如何创建帮助程序。
答案 2 :(得分:0)
从书籍列表到a broader question我会推荐Mvc in Action。
答案 3 :(得分:0)
如果你真的想要点什么:
public static string Radio(this HtmlHelper html, string group, string value)
{
return string.Format("<input type='radio' name='{0}' value='{1}' />", group, value);
}
public static string Checkbox(this HtmlHelper html, string group, string value)
{
return string.Format("<input type='checkbox' name='{0}' value='{1}' />", group, value);
}
这是一种非常基本的方法,并没有提供额外的属性,如id,class,title或其他任何东西。有关此问题的进一步阅读,请查看Rob Conery的blog post。请注意,虽然它适用于MVC v1.0预览版,但大多数仍应适用。
除此之外......如上所述,请按照rrejc和dove的其他答案中的链接给出更好的主意。
答案 4 :(得分:0)
我建议改为FluentHtml,XForms或InputBuilder。或者甚至更好,MVC v2模板输入,我不能等待。