为什么模型绑定不绑定空字符串,从而让属性在Nancy(和其他)中为空?

本文关键字:绑定 Nancy 其他 字符串 模型 为什么 属性 | 更新日期: 2023-09-27 18:06:57

在Nancy代码中,在第181行DefaultBinder中有这个

private bool BindingValueIsValid(string bindingValue, object existingValue, BindingMemberInfo modelProperty, BindingContext bindingContext)
{
    return (!String.IsNullOrEmpty(bindingValue) &&
           (IsDefaultValue(existingValue, modelProperty.PropertyType) ||
           bindingContext.Configuration.Overwrite));
}

当发送空字符串作为值时,我的属性被设置(或者根本不被设置)为null。对我来说,这不应该是默认的行为,因为我确实想要区分空字符串和null。也没有选项可以更改这个,至少我可以告诉。

还有别的办法吗?为什么这似乎是Nancy和ASP中的默认行为?NET MVC和其他?

为什么模型绑定不绑定空字符串,从而让属性在Nancy(和其他)中为空?

似乎是一个bug。我已经提交了一个pull request:

https://github.com/NancyFx/Nancy/pull/2001