Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查传递的int参数_C#_Asp.net Mvc - Fatal编程技术网

C# 如何检查传递的int参数

C# 如何检查传递的int参数,c#,asp.net-mvc,C#,Asp.net Mvc,这比我想象的要复杂!检查字符串是空的还是空的很容易,但是如何使用int来检查呢?也许同样容易,但我被卡住了 我将一个int从html表单输入字段传递给控制器中的一个动作方法,但是尽管我尝试了所有的组合,但没有任何效果!好像是不能与int一起使用。首先,int可以为null吗 我想检查的是,用户是否在没有输入数字的情况下单击了提交按钮。我还想检查它是否是int而不是string?谢谢你的帮助 int不能为空(它始终是一个数字),例如,您可以输出未设置的int,如下所示 Console.WriteL

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

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


我想检查的是,用户是否在没有输入数字的情况下单击了提交按钮。我还想检查它是否是int而不是string?谢谢你的帮助

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

Console.WriteLine(default(int));
您可以做的是使一个可为null的
int
aka
int?
使属性可为空)

通常要做的是有一个从未使用过的值,比如如果你正在处理一个数组,那么-1是一个很好的值,可以用作“跳过值”,然后你只需要测试这个特殊值

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

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

如果未指定任何内容,Int将有一个默认值。要实现您试图实现的目标,请使用可为空的整数类型
int?
就像
int
,但是它可以有一个空值,所以如果你没有收到任何东西,一个简单的
==null
就可以了。

一个
int
不能是
null
,不可以。如果这是一个文本框,用户输入一个数字并单击submit,您应该接受作为文本的输入,并进行客户端模式验证和服务器端模式与转换验证。@LasseV.Karlsen谢谢您的评论!如果我理解你是正确的,你的意思是action方法应该有一个string参数而不是int,然后检查输入是否为null或空,最后从string转换为int!?是的,这就是我的意思。好吧,我试试看@拉瑟夫,卡尔森,它工作得很好!谢谢