2016-07-28 4 views
7

Wie dieser Code zu AspNetCore konvertierenAsp.NET MvcHtmlString und ModelMetadata.FromLambdaExpression zu AspNetCore?

public static MvcHtmlString ChqLabelFor<TModel, TValue>(this HtmlHelper<TModel> html, 
      Expression<Func<TModel, TValue>> expression, object htmlAttributes) 
     { 
      var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData); 
      string resolvedLabelText = metadata.DisplayName ?? metadata.PropertyName; 
      if (metadata.IsRequired) 
      { 
       resolvedLabelText += "*"; 
      } 
      return LabelExtensions.LabelFor<TModel, TValue>(html, expression, resolvedLabelText, htmlAttributes); 
     } 

Ich weiß, dass ich HtmlString

Was gerade jetzt statt MvcHtmlString kann mit

ModelMetadata.FromLambdaExpression 

zu tun, finde ich konnte keine Alternative ...

+0

Ihr Titel ist irreführend, da es nichts mit der Frage zu tun hat eigentlich Sie – Tseng

+0

frage ich den Titel bearbeitet – mbrc

Antwort

12

Diese Helfer existieren noch, aber sie sind ein wenig vergraben.

var modelExplorer = ExpressionMetadataProvider.FromLambdaExpression(expression, htmlHelper.ViewData, htmlHelper.MetadataProvider); 

Sie können dann Zugriff auf die Metadaten mit

modelExplorer.Metadata 

und das Modell selbst mit

modelExplorer.Model 

ich einige Beispiel-Code hier haben, dass es für PowerBI Embedded Bericht Rendering verwendet.

https://blogs.endjin.com/2016/09/how-to-use-power-bi-embedded-with-aspnetcore/

Verwandte Themen