簡單的問題真的。轉換表達<Func鍵<T, bool?>>以表達<Func鍵<T, bool>>
我有一個顯示可空布爾,E,G MVC視圖,
Html.CheckBoxFor(model=>model.NullableBoolHere, Model.NullableBoolHere,
,我想創建一個新的HTML輔助,將接受這種類型的,然後轉換
Null || False => False
True => True
所以我必須感謝,我明白,我將不得不使用遞歸以下
public static MvcHtmlString CheckBoxFor<TModel>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, bool?>> expression, object htmlAttributes, bool disabled)
{
IDictionary<string, object> values = new RouteValueDictionary(htmlAttributes);
if (disabled)
values.Add("disabled", "true");
Expression<Func<TModel, bool>> boolExpression = CONVERT_TO_BOOL_HERE(expression);
return htmlHelper.CheckBoxFor(expression, values);
}
任何幫助複製表達式,但不知道如何去瀏覽表達式本身,找到bool ?,轉換爲bool。
也可能的語法:var b = e.Compile()(htmlHelper.ViewData.Model);無需使用Invoke – Karl