2013-07-13 67 views
18

如何設置複選框的標籤?我查看了一些網站,他們使用的是lambda表達式,但我無法理解它們。我是asp.net MVC的新手。設置剃鬚刀複選框的標籤

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

http:// stackoverflow。com/questions/1312880/html-labelfor-specified-text-asp-net-mvc-2 – TGH

+0

如果您在此處發佈模型代碼,我會向您解釋。 – ataravati

回答

11

如果您正在使用一個你可以這樣做:

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

然後使用TGH指出

屬性否則,如果你沒有一個模型,你可以做標籤是:

@Html.Label("LabelText") 

它打印一個獨立的標籤 或者,如果你想它牛逼手藝它與該項目O鏈接

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

7

我假設你想要的標籤打勾當你點擊它的複選框。

在這種情況下,<label>字段的for屬性must point to the ID of the relevant input element

如果您使用的是模型,@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> 
-3

你不應該需要<label>標籤都:

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

我對類似工作,通過這個剪下的代碼繞過它

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

希望它可以幫助別人

6

這是一個非常好的辦法:

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

Check box with label

  1. 這是什麼bootstrap 3建議。
  2. 它在一個表中工作。
  3. 您可以點擊複選框或標籤來選擇框。 (這是一個重要的可用性功能。)
  4. 遊標正確的是「手」而不是箭頭指針。