2013-07-13 12 views
18

Come si imposta l'etichetta di una casella di controllo? Ho guardato alcuni siti e stanno usando espressioni lambda, ma non riesco a capirli. Sono nuovo di ASP.net MVC.Imposta etichetta per casella di controllo nel rasoio

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

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

+0

Te lo spiegherò se pubblichi qui il codice per il tuo modello. – ataravati

risposta

11

Se si utilizza un modello che si possa fare:

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

Quindi utilizzare gli attributi TGH sottolineato

altrimenti se non si dispone di un modello tutto quello che puoi fare per le etichette è:

@Html.Label("LabelText") 

che stampa un'etichetta indipendente o e mestieri, se si desidera t o legame con l'elemento

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

Se davvero non si vuole Hand craft esso si può scrivere il proprio aiutante HTML come spiegato qui http://develoq.net/2011/how-to-create-custom-html-helpers-for-asp-net-mvc-3-and-razor-view-engine/

7

sto supponendo che si desidera che l'etichetta di spuntare la casella di controllo quando si fa clic su di esso.

In questo caso, l'attributo for del HTML <label> campo must point to the ID of the relevant input element.

Se si utilizza un modello, @Html.CheckBoxFor genererà una casella di controllo senza ID, quindi sarà necessario aggiungere un ID alla casella di controllo, quindi indirizzare l'etichetta sullo stesso ID. Il modo più semplice è replicare il nome della casella di spunta nel suo campo ID usando il metodo helper @Html.NameFor. Ecco un esempio:

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

HTML generato (senza attributi di validazione):

<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

non dovrebbe essere necessario il <label> tag a tutti:

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

ho lavorato su qualcosa di simile e aggirato da questo codice snipped

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

Speranza che aiuta gli altri

6

Questo è davvero un buon modo:

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

Check box with label

  1. E 'ciò che è raccomandato dalla bootstrap 3.
  2. Funziona in una tabella.
  3. È possibile fare clic sulla casella di controllo OPPURE sull'etichetta per selezionare la casella. (questa è un'importante funzione di usabilità)
  4. Il cursore è correttamente la "mano" anziché il puntatore a freccia.
Problemi correlati