4
是否有可能創建Expression<Func<TModel, bool>>()
可在不同htmlHelpers(在CheckBoxFor()
例如)被使用,如果我有一個模型對象如何創建表達式<Func <TModel,TProperty >>;
this HtmlHelper<TModel> htmlHelper
和屬性(通過反射)的名稱。
是否有可能創建Expression<Func<TModel, bool>>()
可在不同htmlHelpers(在CheckBoxFor()
例如)被使用,如果我有一個模型對象如何創建表達式<Func <TModel,TProperty >>;
this HtmlHelper<TModel> htmlHelper
和屬性(通過反射)的名稱。
肯定的:
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);
}
則:
var lambda = CreateExpression<SomeModel, bool>("IsAlive");
沒有! Marc Gravell不應該在這裏!這是Jon Skeet的問題! – 2013-04-25 14:30:41
非常感謝!簡單而有效! – Anelook 2013-04-25 15:23:55
我有另一個連接的問題 - 如果我在我的視圖中有一個更復雜的屬性,一個類的實例會怎麼樣。所以不只是一個簡單的屬性是String或者Boolean,而是一個內部擁有更多屬性的對象。例如,這就是我如何爲這樣的「內部」屬性'@ Html.CheckBoxFor(m => m.Config.All)'聲明簡單的複選框。是否有可能創建這樣的lambda,它將反映對象內的屬性 - 「m => m.Config.All」。 – Anelook 2013-04-26 06:50:53