Подтвердить что ты не робот

Установите метку для флажка в бритве

Как установить метку флажка? Я посмотрел на некоторые сайты, и они используют лямбда-выражения, но я не могу их понять. Я новичок в asp.net MVC.

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

Ответ 1

Если вы используете модель, которую вы можете сделать:

<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-and-razor-view-engine/

Ответ 2

Я предполагаю, что вы хотите, чтобы метка установила флажок, когда вы нажимаете на нее.

В этом случае атрибут for поля HTML <label> должен указывать на идентификатор соответствующего элемента ввода.

Если вы используете модель, @Html.CheckBoxFor генерирует флажок без идентификатора, поэтому вам нужно будет добавить идентификатор установите метку на тот же идентификатор. Самый простой способ - копировать имя флажка в поле ID с помощью вспомогательного метода @Html.NameFor. Вот пример:

@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>

Ответ 3

Это действительно хороший способ:

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

Флажок с меткой

  • Это то, что рекомендуется bootstrap 3.
  • Он работает в таблице.
  • Вы можете нажать на флажок ИЛИ ярлык, чтобы выбрать этот флажок. (Это важная функция юзабилити.)
  • Курсор - это "рука" вместо указателя стрелки.

Ответ 4

Я работал над чем-то подобным и обошел его этим отлаженным кодом

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

Надеюсь, что это поможет другим.

Ответ 5

Тег <label> вообще не нужен:

<div class="block mTop20">
  @HtmlCheckboxFor(f => f.prop)
  @Html.LabelFor(f=>f.prop,"This is the label text")
</div>