2016-07-28 18 views
7

Jak przekonwertować ten kod do AspNetCoreAsp.NET MvcHtmlString i ModelMetadata.FromLambdaExpression do 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); 
     } 

wiem, że mogę teraz używać zamiast MvcHtmlString tylko HtmlString

Co zrobić z

ModelMetadata.FromLambdaExpression 

nie mogłem znaleźć żadnej alternatywy ...

+0

Twój tytuł jest mylący, gdyż nie ma nic wspólnego z pytaniem rzeczywiście zapytać – Tseng

+0

edytowany tytuł – mbrc

Odpowiedz

12

Ci pomocnicy nadal istnieją, ale są trochę pochowani.

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

Następnie można uzyskać dostęp do metadanych z

modelExplorer.Metadata 

i model sam z

modelExplorer.Model 

mam jakiś przykładowy kod tutaj, że używa go do PowerBI wbudowanego renderowania raportu.

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