.NET MVC – Comment assigner une classe à Html.LabelFor?

Ce code

 model.Name) %> 

produit cela

  

Mais je veux ça

  

Comment tu fais ça?

Ok, en regardant la source (System.Web.Mvc.Html.LabelExtensions.cs) pour cette méthode, il ne semble pas y avoir de moyen de le faire avec un HtmlHelper dans ASP.NET MVC 2. Je pense que votre meilleur pari consiste à créer votre propre HtmlHelper ou à effectuer les opérations suivantes pour cette étiquette spécifique:

  

Malheureusement, dans MVC 3, la méthode Html.LabelFor () ne possède aucune signature de méthode permettant une déclaration de classe directe. Toutefois, MVC 4 ajoute 2 surcharges qui acceptent un object anonyme htmlAtsortingbutes.

Comme avec tous les HtmlHelpers, il est important de se rappeler que le compilateur C # considère la class comme un mot réservé.

Donc, si vous utilisez le @ avant l’atsortingbut class, il fonctionne autour du problème, à savoir:

 @Html.LabelFor(model => model.PhysicalPostcode, new { @class= "SmallInput" }) 

Le symbole @ fait de la “classe” un littéral traversé.

Surcharge de LabelFor:

 public static class NewLabelExtensions { public static MvcHtmlSsortingng LabelFor(this HtmlHelper html, Expression> expression, object htmlAtsortingbutes) { return LabelFor(html, expression, new RouteValueDictionary(htmlAtsortingbutes)); } public static MvcHtmlSsortingng LabelFor(this HtmlHelper html, Expression> expression, IDictionary htmlAtsortingbutes) { ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData); ssortingng htmlFieldName = ExpressionHelper.GetExpressionText(expression); ssortingng labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last(); if (Ssortingng.IsNullOrEmpty(labelText)) { return MvcHtmlSsortingng.Empty; } TagBuilder tag = new TagBuilder("label"); tag.MergeAtsortingbutes(htmlAtsortingbutes); tag.Atsortingbutes.Add("for", html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName)); tag.SetInnerText(labelText); return MvcHtmlSsortingng.Create(tag.ToSsortingng(TagRenderMode.Normal)); } } 

http://weblogs.asp.net/imranbaloch/archive/2010/07/03/asp-net-mvc-labelfor-helper-with-htmlatsortingbutes.aspx