Magicodes.IE icon indicating copy to clipboard operation
Magicodes.IE copied to clipboard

对于bool类型的字段,当手动填写除true和false外的其他字符串,会被当做false处理

Open weiwxg opened this issue 2 years ago • 4 comments

期望的结果应该是报错误

[ImporterHeader(Name = "是否为GEO点")]
[Required(ErrorMessage = "是否为GEO点不能为空")]
[ValueMapping(text: "是", true)]
[ValueMapping(text: "否", false)]
public bool Geo { get; set; }

weiwxg avatar Jun 13 '22 06:06 weiwxg

经测试,需要将属性定义成bool?类型,才会触发验证。 这是一个BUG吗?

weiwxg avatar Jun 13 '22 09:06 weiwxg

经测试,需要将属性定义成bool?类型,才会触发验证。 这是一个BUG吗?

不是Bug,bool的默认值是false,永不为空。

xl-wenqiang avatar Jun 14 '22 03:06 xl-wenqiang

那向Excel中输入一个非bool的值,应该是无法转成bool,就像定义一个int类型的字段,而输入的是个非数字的字符串,这里是按正常预期的提示“输入非法内容”的呀

weiwxg avatar Jun 14 '22 03:06 weiwxg

那向Excel中输入一个非bool的值,应该是无法转成bool,就像定义一个int类型的字段,而输入的是个非数字的字符串,这里是按正常预期的提示“输入非法内容”的呀

您的建议不错,除了部分关键字(false、否),这边统一作非法输入处理。

xl-wenqiang avatar Jun 28 '22 09:06 xl-wenqiang