Html助手帮助

时间:2009-09-22 10:39:04

标签: asp.net-mvc

有人可以推荐一本好的书或教程来学习HtmlHelper类,特别是方法Html.CheckBox()Html.Radio()吗?

5 个答案:

答案 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)

我建议改为FluentHtmlXFormsInputBuilder。或者甚至更好,MVC v2模板输入,我不能等待。