3

ASP.NET MVC のメソッドには式が必要ですがExpression<Func<TModel,Boolean>>(チェックボックス HTML コントロールが画面に表示されます)、私のメンバーはBoolean?.

私たちの場合、この特定の状況でnullは、 は と同じでfalse、チェックされていない HTML チェックボックスを表示する必要があります。

Expression<Func<TModel,Boolean?>>途中で何かをExpression<Func<TModel,Boolean>>追加するように変換するにはどうすればよいvalue = nullableValue.HasValue && nullableValue.Valueですか?

結果Expressionはまだ である必要があるので、覚えておいMemberExpressionてください。これが可能かどうか疑問に思います。

乾杯。

4

1 に答える 1

1

値プロパティ(、など)にアクセスしている場合はintbool取得できませんMemberExpressionUnaryExpression、基になるものが操作を実行する責任にMemberExpression包まれているためです。UnaryExpressionConvert

これは、値型が参照型ではなく、null値を受け入れないという事実に起因しているようです。

取得を受け入れる場合UnaryExpressionは、次の方法で実行できます。

Expression<Func<TModel, Boolean?>> source = ...

var resultBody = Expression.Convert(source.Body, typeof(Boolean));    
var result = Expression.Lambda<Func<TModel, Boolean>>(resultBody, source.Parameters);

あなたが役立つかもしれないstackoverflowの質問。

于 2013-03-04T16:39:40.630 に答える