可为null的int作为操作参数
本文关键字:操作 参数 int null 可为 | 更新日期: 2023-09-27 18:29:41
在此代码中
public ActionResult Index(int? id)
{
return View();
}
int? id
做什么?
我们也可以用这种格式写吗?
public ActionResult Index()
{
int id;
return View();
}
它允许您将参数传递给Action。
如果你有这样指定的路线:
"{controller}/{action}/{id}"
然后,您将能够调用URL YourController/Index/1
,并且1
将被传递到您的操作中。
int
后面的问号表示它是Nullable<int>
,也就是说它是可选参数。如果不在URL中,则id将为null
您的备用语法不起作用。
Id
是Index操作方法的参数。使用默认路由定义,当请求您的Index操作方法时,url(url段)中具有Id参数值的部分将映射到action方法的Id
参数。
例如,对于请求yourSiteName.com/yourControllerName/Index/350
,将执行Index操作方法,350
将在Id
参数中可用,并且可以在方法中访问。
int?
表示它是可以为null的int,也就是说该值可以为null。如果不为可为NULL的int参数提供值,则它将为NULL。
就MVC路由而言,这意味着可以像yourControllerName/Index
和yourControllerName/Index/23
一样使用默认路由定义来访问动作方法。有时,人们会使用它为没有Id值的请求返回List/Index视图,并为传入Id的请求返回特定项目。
因此,在访问该值之前,您应该检查它是否为null。如果它不为null,则可以使用Value属性来获取存储在param中的值。
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();
}