Possible Duplicate:
Client Id for Property (ASP.Net MVC)
Is there a way to make Razor render an ID attribute for a Label element when using the Html.LabelFor<> helper?
Example:
.cshtml page
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.Foo)
@Html.TextBoxFor(m => m.Foo)
}
Rendered page
<form ...>
<label for="Foo" id="Label_Foo" />
<input type="text" name="Foo" id="Foo" />
</form>
FYI - The sole reason I'm wanting to add an ID to the Label is for CSS design. I'd prefer to reference the Label by an ID rather than wrapping the Label within a block (i.e. div) and then styling the block.
And for the normal label
@Html.Label()
, you can do it like this:Unfortunately there is no built-in overload of this helper that allows you to achieve this.
Fortunately it would take a couple of lines of code to implement your own:
and once brought into scope use this helper in your view:
Remark: because now it is up to you to manage HTML ids, make sure that they are unique throughout the entire document.
Remark2: I have shamelessly plagiarized and modified the
LabelHelper
method from the ASP.NET MVC 3 source code.