ASP.Net - 输入字符串格式不正确

时间:2012-03-20 11:35:59

标签: c# asp.net

我正在尝试实现一种功能,如果我单击一个按钮,它会向模块添加一个新单元(基本上是一个新页面),但在下面的行中出现错误:

UnitID = Request["UnitID"] != null ? Convert.ToInt32(Request["UnitID"]) : 0;

堆栈跟踪是

[FormatException: Input string was not in a correct format.]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number,    NumberFormatInfo info, Boolean parseDecimal) +7470855
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
System.Convert.ToInt32(String value) +63
Data_Project.Page_Load(Object sender, EventArgs e) in       
C:\Projects\Projects.aspx.cs:69
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, 
Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

请告诉我错误是什么?

许多人表示感谢。

3 个答案:

答案 0 :(得分:2)

这是因为Request["UnitID"]中的某些内容不是数字

答案 1 :(得分:2)

也许你会想尝试

int UnitID = 0;
if(string.IsNullOrEmpty(Request["UnitID"]))
{
    UnitID = 0;
}
else
{
    if(!Int32.TryParse(Request["UnitID"], out UnitID))
    {
        UnitID = 0;
    }
}

希望这有帮助。

答案 2 :(得分:1)

错误“输入字符串格式不正确”表示Request [“UnitID”]无法转换为整数。

试试这个:

UnitID = !string.IsNullOrEmpty(Request["UnitID"]) ? Convert.ToInt32(Request["UnitID"]) : 0;

或者这个:

if(!int.TryParse(Request["UnitID"]+"", out UnitID)
{
UnitID = 0;
}