gpt4 book ai didi

asp.net-mvc-4 - 将 Expression> 转换为 Expression>

转载 作者:行者123 更新时间:2023-12-01 10:51:31 25 4
gpt4 key购买 nike

我有一个自定义的 HtmlHelper 扩展,它根据助手输入参数呈现控件。

我现在的情况是,我可以呈现任何控件,但 CheckBox 除外。当 CheckBoxFor 助手接受时,Expression<Func<TModel, bool>>

我需要一种方法将 Func 的返回类型转换为 bool,如标题中所述。

最佳答案

你可以翻译 lambda:

public static class HtmlExtensions
{
public static IHtmlString MyHelper<TModel, TProperty>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TProperty>> ex
)
{
if (typeof(TProperty) != typeof(bool))
{
throw new InvalidOperationException("You can only generate checkboxes with boolean properties on your view model");
}

var boolExpression = Expression.Lambda<Func<TModel, bool>>(ex.Body, ex.Parameters);

return html.CheckBoxFor(boolExpression);
}
}

现在您可以在模型的 bool 属性上使用助手:

@Html.MyHelper(x => x.SomeBooleanProperty)

关于asp.net-mvc-4 - 将 Expression<Func<TModel, TValue>> 转换为 Expression<Func<TModel, bool>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19153995/

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