在剃刀中设置复选框的标签

Vig*_*esh 20 c# asp.net-mvc asp.net-mvc-4

如何设置复选框的标签?我看了一些网站,他们正在使用lambda表达式,但我无法理解它们.我是asp.net MVC的新手.

@{
   bool chkVal = false;  
 }
<li>@Html.CheckBox("chksumma",chkVal,new {@value = "5"})</li>
<li>@Html.LabelFor(, "");
Run Code Online (Sandbox Code Playgroud)

Jes*_*ess 19

这是一个非常好的方法:

<div class="checkbox">
    <label>@Html.CheckBoxFor(x => item.IsSelected)&nbsp;@Html.DisplayNameFor(x => item.IsSelected)</label>
</div>
Run Code Online (Sandbox Code Playgroud)

带有标签的复选框

  1. 这是bootstrap 3推荐的.
  2. 它在一张桌子上工作.
  3. 您可以单击复选框或标签以选中该框. (这是一个重要的可用性功能.)
  4. 光标恰好是"手"而不是箭头指针.

  • 我尝试了各种其他 S/O“修复”,但这一个使用 MVC5/CheckBoxFor 和 DisplayNameFor(在模型中实现)对我有用,谢谢! (3认同)

Mar*_*ord 14

如果您使用的是模型,则可以执行以下操作:

<li>@Html.CheckBoxFor(f=> f.chksumma)</li>
<li>@Html.LabelFor(f=> f.chksumma)</li>
Run Code Online (Sandbox Code Playgroud)

然后使用TGH指出的属性

否则,如果你没有模型,你可以为标签做的就是:

@Html.Label("LabelText")
Run Code Online (Sandbox Code Playgroud)

如果您希望它与项目链接,它会打印一个独立的标签或制作它

<label for="chksumma">LAbelText</label>
Run Code Online (Sandbox Code Playgroud)

如果您真的不想手工制作它,您可以编写自己的HTML帮助程序,如此处所述 http://develoq.net/2011/how-to-create-custom-html-helpers-for-asp-net-mvc -3和-剃刀-视图-发动机/


Sim*_*zie 8

我假设您希望标签在您单击时勾选复选框.

在这种情况下,forHTML <label>字段的属性必须指向相关输入元素的ID.

如果您使用的是模型,@Html.CheckBoxFor则会生成一个没有ID的复选框,因此您需要在复选框中添加ID,然后将标签指向相同的ID.最简单的方法是使用@Html.NameFor辅助方法将复选框的名称复制到其ID字段中.这是一个例子:

@Html.CheckBoxFor(x => x.Active, new {id=Html.NameFor(x => x.Active)})
<label for="@Html.NameFor(x => x.Active)">Active</label>
Run Code Online (Sandbox Code Playgroud)

生成的HTML(没有验证属性):

<input id="[0].Active" name="[0].Active" type="checkbox" value="true" />
<input name="[0].Active" type="hidden" value="false" />
<label for="[0].Active">Active</label>
Run Code Online (Sandbox Code Playgroud)