2016-07-28 103 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/