diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index fb52dc384d0..5398b4691e2 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 10.1.4-beta03 + 10.1.4-beta04 diff --git a/src/BootstrapBlazor/Extensions/LambdaExtensions.cs b/src/BootstrapBlazor/Extensions/LambdaExtensions.cs index 12ba541c1eb..ec7cd250343 100644 --- a/src/BootstrapBlazor/Extensions/LambdaExtensions.cs +++ b/src/BootstrapBlazor/Extensions/LambdaExtensions.cs @@ -676,11 +676,17 @@ private static ConditionalExpression BuildPropertyAccess(Expression instance, Ty var p = instanceType.GetPropertyByName(propertyName) ?? throw new InvalidOperationException($"类型 {instanceType.Name} 未找到 {propertyName} 属性,无法获取其值"); var propertyAccess = Expression.Property(instance, p); - return Expression.Condition( - test: Expression.Equal(instance, Expression.Constant(null, instanceType)), - ifTrue: Expression.Constant(null, p.PropertyType), - ifFalse: propertyAccess - ); + return p.PropertyType.IsValueType + ? Expression.Condition( + test: Expression.Equal(instance, Expression.Constant(null, instanceType)), + ifTrue: Expression.Default(p.PropertyType), + ifFalse: propertyAccess + ) + : Expression.Condition( + test: Expression.Equal(instance, Expression.Constant(null, instanceType)), + ifTrue: Expression.Constant(null, p.PropertyType), + ifFalse: propertyAccess + ); } ///