gpt4 book ai didi

C# MVC 模型表达式到值

转载 作者:行者123 更新时间:2023-11-28 01:49:03 25 4
gpt4 key购买 nike

我正在尝试使用 Expression<Func<TModel, TProperty>> expression,发送到我的助手类。

我想从中提取值并将其呈现在 html 字符串中。我似乎无法让它工作我目前有:

  public static MvcHtmlString TextboxGroupStaticFor<TModel, TProperty>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TProperty>> expression,
BootstrapInputSizes? width = BootstrapInputSizes.Defalut
)
{
var placeholder = string.Empty;
if (html.ViewData.ModelMetadata.AdditionalValues.ContainsKey("placeholder"))
{
placeholder = html.ViewData.ModelMetadata.AdditionalValues["placeholder"] as string;
}


var sb = new StringBuilder();

sb.AppendLine("<div class=\"form-group\">");
sb.AppendLine(html.LabelFor(expression).ToHtmlString());
sb.AppendLine("<p class=\"form-control-static\">" + " " + "</p>");
sb.AppendLine("</div>");
return new MvcHtmlString(sb.ToString());
}

调用使用:@Html.TextboxGroupStaticFor(x=> x.Name);

但是不知道如何做 expression.value 或类似的东西?

更新

我发现这行得通

 Func<TModel, TProperty> method = expression.Compile();

TProperty value = method(html.ViewData.Model);

这是一个好方法吗,例如性能方面?

最佳答案

我相信您正在寻找:

sb.AppendLine(html.LabelFor(expression.Compile()()).ToHtmlString());

关于C# MVC 模型表达式到值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com