26

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

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

5 回答 5

30

这是一个非常好的方法:

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

带标签的复选框

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

编辑

这在Bootstrap 4中很容易做到。

您只需包装标签并在form-check标记中输入:

<div class="form-check">
  <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
  <label class="form-check-label" for="defaultCheck1">Default checkbox</label>
</div>
于 2017-08-01T21:03:01.733 回答
16

如果您使用的是模型,您可以这样做:

<li>@Html.CheckBoxFor(f=> f.chksumma)</li>
<li>@Html.LabelFor(f=> f.chksumma)</li>

然后使用TGH指出的属性

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

@Html.Label("LabelText")

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

<label for="chksumma">LAbelText</label>

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

于 2013-12-14T08:00:58.227 回答
10

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

在这种情况下,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>

生成的 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>
于 2014-07-31T00:31:57.697 回答
4

我做了类似的事情,并通过这段代码解决了它

<div class="row">
<div class="col-xs-3">
<label>
    @Html.CheckBoxFor(x => x.AdvanceSearch.IsExactPhrase)
    @Html.LabelFor(x => x.AdvanceSearch.IsExactPhrase)
</label>
</div> ...

希望对其他人有所帮助

于 2016-12-05T08:18:47.863 回答
-2

您根本不需要该<label>标签:

<div class="block mTop20">
  @HtmlCheckboxFor(f => f.prop)
  @Html.LabelFor(f=>f.prop,"This is the label text")
</div>
于 2015-04-07T09:41:14.967 回答