반응형
.NET MVC-Html.LabelFor에 클래스를 할당하는 방법은 무엇입니까?
이 코드
<%= Html.LabelFor(model => model.Name) %>
생산
<label for="Name">Name</label>
하지만 나는 그것을 원한다
<label for="Name" class="myLabel">Name</label>
어떻게 하죠?
좋아,이 방법의 소스 (System.Web.Mvc.Html.LabelExtensions.cs)를 살펴보면 ASP.NET MVC 2에서 HtmlHelper를 사용하여이 작업을 수행 할 수있는 방법이없는 것입니다. 고유 한 HtmlHelper를 만들거 나이 특정 레이블에 대해 다음을 수행하는 것입니다.
<label for="Name" class="myLabel"><%= Model.Name %></label>
안타깝게도 MVC 3 에서 Html.LabelFor () 메소드는 직접 클래스 선언을 허용하는 메소드 서명이 없습니다. 그러나 MVC 4 는 htmlAttributes 익명 객체를 허용하는 2 개의 오버로드를 추가합니다.
모든 HtmlHelper와 마침 C # 컴파일러는 class
예약어로 인식하는 것이 기억하는 것이 중요합니다 .
@를 사용하면 클래스 속성 속성을 사용할 수 있습니다.
@Html.LabelFor(model => model.PhysicalPostcode, new { @class= "SmallInput" })
@ 기호는 "클래스"를 전달되는 리터럴로 만듭니다.
LabelFor의 보강 :
public static class NewLabelExtensions
{
public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, object htmlAttributes)
{
return LabelFor(html, expression, new RouteValueDictionary(htmlAttributes));
}
public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, IDictionary<string, object> htmlAttributes)
{
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
string htmlFieldName = ExpressionHelper.GetExpressionText(expression);
string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last();
if (String.IsNullOrEmpty(labelText))
{
return MvcHtmlString.Empty;
}
TagBuilder tag = new TagBuilder("label");
tag.MergeAttributes(htmlAttributes);
tag.Attributes.Add("for", html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName));
tag.SetInnerText(labelText);
return MvcHtmlString.Create(tag.ToString(TagRenderMode.Normal));
}
}
참고 URL : https://stackoverflow.com/questions/2294250/net-mvc-how-to-assign-a-class-to-html-labelfor
반응형
'ProgramingTip' 카테고리의 다른 글
Pandas : DataFrame 샘플링 (0) | 2020.11.06 |
---|---|
Content-Range와 Range 헤더의 차이점은 무엇입니까? (0) | 2020.11.06 |
트위터 부트가있는 전체 너비 레이아웃 (0) | 2020.11.06 |
개행 또는 \ r \ n을 (0) | 2020.11.06 |
onTouchEvent ()에서 이동과 클릭을 구별하는 방법은 무엇입니까? (0) | 2020.11.06 |