asp.net MVC使用PagedList.MVC实现分页效果
程序员文章站
2022-05-26 09:43:12
在上一篇的ef之db first中,存在以下的两个问题:
1. 添加/编辑页面显示的是属性名称,而非自定义的名称(如:姓名、专业...)
2. 添加/编辑时没有加入验证...
在上一篇的ef之db first中,存在以下的两个问题:
1. 添加/编辑页面显示的是属性名称,而非自定义的名称(如:姓名、专业...)
2. 添加/编辑时没有加入验证
3. 数据展示使用分页
@html.labelfor(model => model.name, htmlattributes: new { @class = "control-label col-md-2" }) 是显示属性name的“标签”,如果没有指定display特性,则直接显示属性名name
通用数据库生成的实体模型文件与代码一般不直接修改(防止下次生成时覆盖),这里要使用验证与实体分离
添加一个验证类,代码如下 :
using system.componentmodel.dataannotations; namespace zhong.web.models { [metadatatype(typeof(t_studentvalidateinfo))] public partial class t_student { } public class t_studentvalidateinfo { [display(name="姓名")] [required(errormessage ="姓名不能为空")] [stringlength(10,errormessage ="姓名长度超出限制")] public string name { get; set; } [display(name="学号")] [required] [stringlength(20,minimumlength =10,errormessage ="长度为10-20")] public string studentid { get; set; } } }
此时前台访问并提交:
从上图可以发现name变成了“姓名”,studentsid变成了“学号”,点击create按钮后,出现了验证提示信息。
分页的实时使用pagedlist.mvc插件,可以nuget添加引用
studentscontroller中增加一个list的控制器方法:
public actionresult list(int page = 1) { //var students = entities.t_student.orderby(s => s.id).skip((page - 1) * 2).take(2); var students = entities.t_student.orderby(s => s.id); return view(students.topagedlist(page, 2)); }
视图代码如下:
@using pagedlist.mvc @model pagedlist.ipagedlist<zhong.web.models.t_student> @{ viewbag.title = "list"; } <h2>list</h2> <p> @html.actionlink("create new", "create") </p> <table class="table"> <tr> <th> 姓名 </th> <th> 学号 </th> <th> 专业 </th> <th></th> </tr> @foreach (var item in model) { <tr> <td> @html.displayfor(modelitem => item.name) </td> <td> @html.displayfor(modelitem => item.studentid) </td> <td> @html.displayfor(modelitem => item.t_major.name) </td> <td> @html.actionlink("edit", "edit", new { id=item.id }) | @html.actionlink("details", "details", new { id=item.id }) | @html.actionlink("delete", "delete", new { id=item.id }) </td> </tr> } </table> @html.pagedlistpager(model,page => url.action("list",new { page}))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
PHP使用Mysqli类库实现完美分页效果的方法
-
asp.net中使用自定义控件的方式实现一个分页控件的代码
-
Asp.net GridView使用大全(分页实现)
-
Asp.net GridView使用大全(分页实现)
-
MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页
-
从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图...
-
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
-
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
-
Asp.Net 生成静态页并实现分页效果
-
asp.net中Datalist使用数字分页的实现方法