将页码传递给我的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异常
解决方法
最后一个没有意义Public ActionResult Demo(int?page = 1).
根据您的方案,前两个操作方法不会有任何不同,因为参数是页码.如果没有提供参数,人们希望登陆第一页.
但是,如果您关心该值,则不希望使用可选参数.
public ActionResult UserDetails(int? id) { if (!id.HasValue) return View("UserNotFound"); // Or return a message. int userId = id.Value; var user = _userService.GetUserById(userId); // Do something }
您不能在上面的场景中使用可选参数 – public ActionResult UserDetails(int id = 123)
仅供参考:您不想使用公共ActionResult UserDetails(int id).如果没有提供id,它将导致崩溃.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。