C# 可为null的int作为操作参数
在此代码中C# 可为null的int作为操作参数,c#,asp.net-mvc,C#,Asp.net Mvc,在此代码中 public ActionResult Index(int? id) { return View(); } 什么是int?iddo 我们也可以用这种格式写吗 public ActionResult Index() { int id; return View(); } Id是索引操作方法的参数。使用默认路由定义,当请求索引操作方法时,url(url段)中具有Id参数值的部分将映射到操作方法的Idparam 例如,对于请求yourSiteName.com/yourCont
public ActionResult Index(int? id)
{
return View();
}
什么是int?id
do
我们也可以用这种格式写吗
public ActionResult Index()
{
int id;
return View();
}
Id
是索引操作方法的参数。使用默认路由定义,当请求索引操作方法时,url(url段)中具有Id参数值的部分将映射到操作方法的Id
param
例如,对于请求yourSiteName.com/yourControllerName/Index/350
,将执行索引操作方法,并且350
将在Id
参数中可用,并可在方法中访问
int?
表示它是可为null的int,这意味着该值可以为null。如果不为可为null的int参数提供值,则该值将为null
就MVC路由而言,这意味着可以使用默认路由定义访问操作方法,如yourControllerName/Index
和yourControllerName/Index/23
。有时,人们使用它为请求返回一个不带Id值的列表/索引视图,并为请求返回一个带有传入Id的特定项
因此,在访问该值之前,应该检查它是否为null。如果不为null,则可以使用Value属性获取存储在参数中的值
public ActionResult Index(int? id)
{
if(id!=null)
{
//request came with a value for id param. Let's read it.
var idValue =id.Value;
//do something with the IdValue which is an Int
}
else
{
//request came without a value for id param
}
return View();
}
Id
是索引操作方法的参数。使用默认路由定义,当请求索引操作方法时,url(url段)中具有Id参数值的部分将映射到操作方法的Id
param
例如,对于请求yourSiteName.com/yourControllerName/Index/350
,将执行索引操作方法,并且350
将在Id
参数中可用,并可在方法中访问
int?
表示它是可为null的int,这意味着该值可以为null。如果不为可为null的int参数提供值,则该值将为null
就MVC路由而言,这意味着可以使用默认路由定义访问操作方法,如yourControllerName/Index
和yourControllerName/Index/23
。有时,人们使用它为请求返回一个不带Id值的列表/索引视图,并为请求返回一个带有传入Id的特定项
因此,在访问该值之前,应该检查它是否为null。如果不为null,则可以使用Value属性获取存储在参数中的值
public ActionResult Index(int? id)
{
if(id!=null)
{
//request came with a value for id param. Let's read it.
var idValue =id.Value;
//do something with the IdValue which is an Int
}
else
{
//request came without a value for id param
}
return View();
}
它允许您将参数传递给操作 如果您有这样指定的路线:
"{controller}/{action}/{id}"
然后您将能够调用URLYourController/Index/1
,并且1
将被传递到您的操作中
int
后面的问号表示它是一个可为空的
参数,也就是说它是一个可选参数。如果它不在URL中,则id将为null
您的备用语法不起作用。它允许您将参数传递给操作 如果您有这样指定的路线:
"{controller}/{action}/{id}"
然后您将能够调用URLYourController/Index/1
,并且1
将被传递到您的操作中
int
后面的问号表示它是一个可为空的
参数,也就是说它是一个可选参数。如果它不在URL中,则id将为null
您的备用语法不起作用。我更改了标题,这样看起来OP就不会像我更改了标题那样尝试搜索和读取可空类型,也不会像您有一个具有
Int
type属性的类并且您没有设置这个属性在你的类对象上,你以后访问它时会得到0,我猜这是这个值类型的默认值。我想我不应该把它和动作方法param context混在一起。如果我没有设置int参数呢?假设它的索引(String somevalue),那么在动作方法中,可以使用String.IsNullOrEmpty(somevalue)检查请求中的值。由于param name不是id,url应该是index?somevalue=abc当您有一个具有Int
type属性的类,并且您没有在类对象上设置此属性的值时,您在以后访问它时会得到0,我猜这是此值类型的默认值。我想我不应该把它和动作方法param context混在一起。如果我没有设置int参数呢?假设它的索引(String somevalue),那么在动作方法中,可以使用String.IsNullOrEmpty(somevalue)检查请求中的值。由于参数名不是id,url应该是index?somevalue=abcwhat如果我没有输入int参数?比如说它的索引(字符串somevalue),如果我没有输入int参数呢?比如说它的索引(字符串somevalue)