ASP.NET:使用Flurl制作可复用的分页组件

使用ASP.NET MVC查询时,一直使用MvcPaging组件,虽然需要自定义MvcPaging.Pager才能达到我想要的效果,但在没有较好的URL库时,还是这么用。分页的逻辑本来就不复杂,更重要的是最近发现了Flurl这个开源库,所以采用Flurl制作一个DIY的分页组件,核心是PagingModel文件,算法可能不是最优,但包含了主要的逻辑和实现关键点。由于在查询方面,我使用以下实践:

1.使用ViewModel封装查询参数

2.使用ViewModel作为View的Model类型

3.采用表单的GET方式提交查询到Action

4.直接设置Url的参数提交查询到Action

因此自制的分页组件也在上述环境下应用。本来计算将查询和分页写在一起,但是为了便于独立演示分页还是将分页部分独立出来。

1.首先使用String扩展方法包装Flurl中的方法,便于以后更换其他库。

2.自定义继承自IHtmlString的对象PagingModel,这样可以不依赖MVC的程序库。

同时实现了IvalidatableObject接口,检查PageSize异常。一些默认的参数可以配置成从配置文件(在ASP.NET MVC 系列:文件上传的Demo有相关的代码)或配置数据库中读取。

3.在ASP.NET MVC Razor中直接使用或使用HtmlHelper扩展方法包装调用。

可以对类库再次保证,引用ASP.NET MVC,这样可以直接返回SelectList对象。

Action:

View:

4.可以不使用继承自PagingModel的方式,直接在View中new 一个PagingModel方式:

5.效果演示:

(1)靠近首页和末页的链接数不足时,会向中间补全。博客园的导航就只处理了靠近首页部分,没有正确处理末页部分。

(2)默认PageIndex和PageSize不会添加参数。Url中参数为空时会自动过滤掉。

 更新:支持调用自定义Razor模板

代码已经上传到gitosc:http://git.oschina.net/myshare/AspNetPaging

组件已经上传到nuget:https://www.nuget.org/packages/AspNetPaging/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未能加载文件或程序集“flurl.http, version=3.2.4.0, culture=neutral, publickeytoken=null”或它的某一个依赖项。找不到指定的文件。 这个错误通常出现在使用.NET开发的应用程序中,原因可能是以下几种情况之一: 1. 缺少相关的DLL文件:在使用flurl.http组件时,可能没有将所需的DLL文件复制到应用程序的运行目录中。解决方法是确保将flurl.http组件的DLL文件及其所有依赖项都放置在正确的文件路径中。 2. 版本不匹配:可能在代码中使用flurl.http的版本与实际引用的版本不兼容。解决方法是检查代码中对flurl.http组件的引用,并确保版本号匹配。 3. 缺少依赖项:flurl.http组件可能依赖于其他的组件,而这些组件可能没有正确安装或引用。解决方法是检查flurl.http组件的文档或官方网站,确定是否有其他依赖项需要安装。 4. DLL文件被占用或损坏:在运行应用程序时,flurl.http的DLL文件可能正在被其他程序使用,或者文件本身可能已损坏。解决方法是尝试重新启动计算机,并确保DLL文件没有被其他程序占用。如果问题仍然存在,可以尝试重新下载和安装flurl.http组件。 综上所述,当出现"未能加载文件或程序集“flurl.http, version=3.2.4.0, culture=neutral, publickeytoken=null”"的错误时,需要检查是否缺少相关DLL文件、版本是否匹配、是否存在缺少的依赖项,同时也要注意DLL文件是否被占用或损坏。通过解决这些可能的问题,应该能够解决该错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值