如何判断Request.Form中的值是否为数字? (C#)

时间:2011-06-07 20:40:05

标签: c# asp.net string string-parsing request.form

假设我必须使用以下签名调用函数:     doStuff(的Int32?)

我想向doStuff传递一个从Request.Form读取的值。但是,如果传入的值为空,缺少或不是数字,我希望doStuff传递一个空参数。这不应该导致错误;这是一项行动。

我必须用八个这样的值来做这个,所以我想知道用C#写一个优雅的方法是什么

var foo = Request.Form["foo"];
if (foo is a number)
    doStuff(foo);
else
    doStuff(null);

3 个答案:

答案 0 :(得分:8)

如果要检查它是否为整数,请尝试解析它:

int value;
if (int.TryParse(Request.Form["foo"], out value)) {
    // it's a number use the variable 'value'
} else {
    // not a number
}

答案 1 :(得分:5)

您可以执行类似

的操作
int dummy;
if (int.TryParse(foo, out dummy)) {
   //...
}

答案 2 :(得分:4)

使用Int32.TryParse

e.g:

var foo = Request.Form["foo"]; 
int fooInt = 0;

if (Int32.TryParse(foo, out fooInt ))     
    doStuff(fooInt); 
else     
    doStuff(null);