如何检查传递的int参数

时间:2015-12-20 13:04:58

标签: c# asp.net-mvc

这比我想象的要复杂得多!检查字符串是空还是空是很容易的,但这是如何用int完成的?也许同样容易,但我被卡住了!

我将一个来自html表单输入字段的int传递给控制器​​中的action方法,但是尽管我尝试了所有组合,但没有任何效果!似乎!不可能与int一起使用。首先,int可以为null吗?

我想检查用户是否在未输入号码的情况下点击了提交按钮。我还想检查它是否是一个int而不是一个字符串?一些帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

int不能为空(它始终是一个数字),例如,您可以输出未设置的int,例如

Console.WriteLine(default(int));

你可以做的是制作一个可以为空的intint??使属性可以为空)

通常做的是拥有一个从未使用过的值,就像你正在处理数组一样,然后-1是一个很好的值,可用作" skip-value"那么你只需要测试那个特殊值。

在控制器上,如果未设置值,则不传递该值,并且只在int?上默认将其构造为null。

public string Method(string value, int? number = null)
{
    if(number.HasValue)
    {
        //DoWork with int
    }
    else
    {
        //Do work without int
    }
    return "result";
} 

答案 1 :(得分:0)

如果未分配任何内容,则Int具有默认值。要实现您的尝试,请使用可为空的整数类型。 Linq to Objects就像int?一样,但它可以有一个空值,所以如果你没有收到任何东西,一个简单的int就可以了。