Я пытаюсь создать форму с 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 у меня есть:
MyDecimalValue = String.IsNullOrEmpty(myDecimalTextBox.Text.Trim()) ? 0 : Decimal.Parse(myDecimalTextBox.Text.Trim(), CultureInfo.InvariantCulture)
Тем не менее, преобразование всегда дает результат 0, даже когда вводится другое число.
Я проверил, что текстовое поле по ошибке не было пустым (это не так), поэтому ошибка в преобразовании. Я также пробовал TryParse и Convert.ToDecimal, но безрезультатно. На самом деле, я также попробовал это с Double или Int, и это тоже не сработало, я просто не могу извлечь число из этого текстового поля. Я также попытался сделать TextBox типом чисел, но это тоже не сработало.
Что я делаю не так?