我的任务是在没有太多培训或经验的情况下维护一个较旧的 webforms 应用程序。
我被要求在现有表中添加一个新字段并将其公开在网页中。这是执行此操作的代码,我以其他现有字段和代码为模型。
<asp:TextBox ID="PortableBarrelCompressionValuetextBox"
runat="server"
SkinID="FVTextBox"
Text='<%# Bind("PortableBarrelCompressionValue") %>'
<asp:RangeValidator
ID="RangeValidatorPortableBarrelCompressionValuetextBox"
runat="server"
ControlToValidate="PortableBarrelCompressionValuetextBox"
CssClass="failureNotification"
Display="Dynamic"
ErrorMessage="Whole Numbers Between 0 and 9999"
MaximumValue="9999"
MinimumValue="0"
Type="Integer"
Text='<%# Eval("PortableBarrelCompressionValue") %>'>
</asp:RangeValidator>
这仅在现有值非空(当然,在范围内)时才能正常工作。如果我将有效数字(例如 22)更改为不同的有效数字 200,它将按预期保存更改。
但是,如果现有记录上的值为 null 并且我尝试添加一个整数,则会失败并显示错误消息:
Value {" is not a valid value for Int32."} System.Exception
如果存在已删除的现有有效值并出现相同错误,它也会失败。
此字段不是必需的,因此我必须在此处允许 Null。
在过去的两天里,我已经学到了足够多的知识来决定发生这种情况,因为该字段是一个整数,并且 Null 无法转换为字符串以进行验证(至少这是我现在假设的)。
如果这是真的,这就是问题所在,我需要找到解决方法。
我在正确的轨道上吗?
除了适当范围内的整数之外,有没有办法提供一个验证,该验证也将接受该字段中的空值?
提前致谢。