当我运行“ ProductDescription.aspx”页面时,出现此错误“ mscorlib.dll中发生了'System.FormatException'类型的异常,但未在用户代码中处理。其他信息:输入字符串的格式不正确格式。”在条件条件下使用Convert.ToInt32。
程序仅在加载“ ProductDescription.aspx”页面时显示该错误。我尝试了Double.Parse方法和int.Parse方法,它们显示相同的错误。
ProductDescription.aspx.cs:
if (Convert.ToInt32(t1.Text) > Convert.ToInt32(pqty) )
{
l1.Text = "error";
}
else
{
l1.Text = "";
}
ProductDescription.aspx:
<div style="height: 300px; width: 400px; float: left; border-style: solid; border-width: 1px;">
item name = <%#Eval("name") %> <br />
Description = <%#Eval("description") %> <br />
Price = <%#Eval("price") %> <br />
Quantity = <%#Eval("quantity") %>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
<br />
<table>
<tr>
<td> Enter Quantity </td>
<td> <asp:TextBox ID="t1" runat="server" TextMode="Number"></asp:TextBox></td>
<td> <asp:Button ID="b1" runat="server" Text="Add to cart" OnClick="b1_Click" /> </td>
</tr>
<tr>
<td colspan="3"> <asp:Label ID="l1" runat="server" ForeColor="Red" Text=""></asp:Label></td>
</tr>
</table>
答案 0 :(得分:0)
Convert.ToInt32
会引发此异常。期望的字符串是整数,例如"1"
或"654"
。
您可能没有为文本框t1
设置默认值,因此它正在尝试将""
转换为int,而这不能。
您可以通过设置默认值或在输入值之前不运行比较来解决此问题。