c# – MVC ActionResult – Nullable或Optional参数
发布时间:2020-12-15 22:36:43 所属栏目:百科 来源:网络整理
导读:将页码传递给我的MVC操作以获取分页列表时,不需要提供页码.如果未选择页码,则数字默认为第一页. 大多数文档似乎都支持使用空合并运算符,例如: Public ActionResult Demo(int? page){ const int pageSize = 10 var model _db.Model.ToPagedList(page ?? 1,pa
将页码传递给我的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,它将导致崩溃. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- C#循环数组索引值从索引中返回到数组的开头
- 用ajax获取数据return的结果为undefined
- ruby轨道 – 运行功能时黄瓜步骤不会自动加载
- oracle 11g 从+DATA迁移到+newdata ASM 磁盘组迁移
- ios – 在XCode中的一个目标中有两个GoogleService-Info.pl
- System.Xml.XmlException: '=' is an unexpecte
- 关于define与C 的内存
- ios – Xcode 7,Obj-C,“Null传递给需要非空参数的被调用者
- PullToRefresh使用详解(二)---重写BaseAdapter实现复杂XML下
- c# – 为什么编译器不能推断出这个select调用的类型?