我正在尝试使用DNN和ASP.NET构建表单,但无法从文本框中提取要包含十进制数字的数字。
表单的其余部分工作正常(其他字段是字符串),它可以正确地将所述字段提交给数据库。
我的ascx文件中的表单具有:
<div class="dnnFormItem">
<div class="dnnLabel">
<asp:Label ID="myDecimalLabel" runat="server" Text="Enter decimal here:"></asp:Label>
</div>
<asp:TextBox ID="myDecimalTextBox" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator runat="server" controltovalidate="myDecimalTextBox" validationexpression="^\d*\.?\d*$" errormessage="Invalid input" />
</div>
在我的ascx.cs文件的Add / Update方法中,我有:
MyDecimalValue = String.IsNullOrEmpty(myDecimalTextBox.Text.Trim()) ? 0 : Decimal.Parse(myDecimalTextBox.Text.Trim(), CultureInfo.InvariantCulture)
但是,即使输入另一个数字,转换也始终会产生0的结果。
我已经检查过它没有错误地认为文本框为空(不是),因此转换失败。我也尝试了TryParse和Convert.ToDecimal,但无济于事。实际上,我也尝试过使用Double或Int进行此操作,但该方法也不起作用,我似乎无法从该文本框中提取数字。我还尝试将TextBox设置为数字类型,但这也不起作用。
我在做什么错了?