当向我的MVC动作传递一个分页列表的页面编号时,并不需要提供一个页面编号。如果没有选择页面编号,该数字默认为第一页。
大多数文档似乎支持使用空值合并运算符,例如:
大多数文档似乎支持使用空值合并运算符,例如:
Public ActionResult Demo(int? page)
{
const int pageSize = 10
var model _db.Model.ToPagedList(page ?? 1, pageSize);
return View(model);
}
或类似的东西。
我想知道使用这种方法是否比使用默认参数更有好处,例如:
Public ActionResult Demo(int page = 1)
{
const int pageSize = 10
var model _db.Model.ToPagedList(page, pageSize);
return View(model);
}
甚至还可以
Public ActionResult Demo(int? page = 1)
{
const int pageSize = 10
var model _db.Model.ToPagedList(page.Value, pageSize);
return View(model);
}
尽管在此实例中将页面设置为空类型似乎是多余的。
是否使用其中一种方法有任何特殊益处,还是仅仅是语法糖。
编辑:修复了第三个示例中的空异常。
null
,那么page
就会等于null
,并且你可能会从ToPagedList
方法中得到异常。 - Gilad Greenpage.Value
,除非.ToPagedList
恰好将其第一个参数用作int?
。 - Peter B