我正在尝试实现一种功能,如果我单击一个按钮,它会向模块添加一个新单元(基本上是一个新页面),但在下面的行中出现错误:
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
请告诉我错误是什么?
许多人表示感谢。
答案 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;
}