2016-07-28 97 views
7

如何將這個代碼轉換爲AspNetCoreAsp.NET MvcHtmlString和ModelMetadata.FromLambdaExpression到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); 
     } 

我知道,我現在可以使用的,而不是僅僅MvcHtmlStringHtmlString

做什麼用的

ModelMetadata.FromLambdaExpression 

我找不到任何替代...

+0

你的標題是誤導,因爲它無關的問題,你居然問我 – Tseng

+0

編輯標題 – mbrc

回答

12

那些幫手仍然存在,但他們埋一點。

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

可以再用

modelExplorer.Metadata 

訪問元數據,並與

modelExplorer.Model 

我來到這裏的一些示例代碼,將其用於嵌入式PowerBI報告渲染模型本身。

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