如何创建Expression <Func <TModel,TProperty >>;

Ane*_*ook 5 c# asp.net-mvc html-helper

如果我有一个模型对象,是否Expression<Func<TModel, bool>>()可以创建哪些可以在不同的htmlHelper中使用(例如in CheckBoxFor())

this HtmlHelper<TModel> htmlHelper
Run Code Online (Sandbox Code Playgroud)

和财产的名称(通过反思).

Mar*_*ell 12

当然:

static Expression<Func<TModel,TProperty>> CreateExpression<TModel,TProperty>(
    string propertyName)
{
    var param = Expression.Parameter(typeof(TModel), "x");
    return Expression.Lambda<Func<TModel, TProperty>>(
        Expression.PropertyOrField(param, propertyName), param);
}
Run Code Online (Sandbox Code Playgroud)

然后:

var lambda = CreateExpression<SomeModel, bool>("IsAlive");
Run Code Online (Sandbox Code Playgroud)

  • 没有!Marc Gravell不应该在这里!这是Jon Skeet的问题! (3认同)