MVC 自定义HtmlHelper帮助类型之分页
方法一:
在项目中增加App_Code文件夹,新增一个MyHtmlper.cshtml视图文件

写入代码:
@helper Pagger(int pageIndex, int pageCount)
{
<div>
@for (int i = 1; i <= pageCount; i++)
{
if (i != pageIndex)
{
<span > <a href="/Home/Index/@(i)_@(pageCount)">@(i)</a></span>
}
else
{
<span >@i</span>
}
}
</div>
}
新增一个HomeController
public class HomeController : Controller
{
// GET: Home
public ActionResult Index(int pageIndex = 1,int pageCount=10)
{
if (pageIndex <= 0)
pageIndex = 1; TempData["PageIndex"] = pageIndex;
TempData["PageCount"] = pageCount;
return View();
}
}
写一个新的路由
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Pagger",
url: "{controller}/{action}/{pageIndex}_{pageCount}",
defaults: new { controller = "Home", action = "Index"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
新增视图:
@{
ViewBag.Title = "Index";
}
@{
var pageindex = Convert.ToInt32( TempData["PageIndex"]);
var pageCount = Convert.ToInt32(TempData["PageCount"]);
}
<div>
当前是第 @pageindex 页
</div>
<hr/>
@MyHtmlper.Pagger(pageindex, pageCount)
运行结果

方法二:
扩展HtmlHelper方法,新增一个CodeHelper类型,扩展HtmlHelper一个Pagger方法
public static class CodeHelper
{
public static MvcHtmlString Pagger(this HtmlHelper htmlHelper, int pageIndex, int pageCount)
{
var htmlSb = new StringBuilder();
for (int i = 1; i <= pageCount; i++)
{ if (i != pageIndex)
{
htmlSb.Append(" <span> <a href =\"/Home/Index/" + i + "_" + pageCount + "\" >" + i + "</a></span>");
}
else
{
htmlSb.Append("<span>" + i + "</span>");
}
}
return new MvcHtmlString(htmlSb.ToString());
}
}
修改视图
@{
ViewBag.Title = "Index";
}
@{
var pageindex = Convert.ToInt32( TempData["PageIndex"]);
var pageCount = Convert.ToInt32(TempData["PageCount"]);
}
<div>
当前是第 @pageindex 页
</div>
<hr/>
@MyHtmlper.Pagger(pageindex, pageCount)
<hr/>
@Html.Pagger(pageindex,pageCount)
运行结果:

本人当前只知道两种方法。分享出了给大家借鉴
MVC 自定义HtmlHelper帮助类型之分页的更多相关文章
- MVC 自定义Htmlhelper扩展
在MVC中,我们不仅可以使用它原来的方法,我们还可以自定义,这不不仅加大了我们开发的效率,同时使界面更简洁. 具体什么是扩展方法,你可以这样理解,必须是静态且在形参中第一个参数是以this开头,大概先 ...
- ASP.NET MVC 之自定义HtmlHelper
前言 HtmlHelper方法为我们提供很多html标签,只需在页面调用就行了,但是微软并没有把所有的html标签都对应有了扩展方法,需要我们重新自定义HtmlHelper,来满足我们需要. 方法 如 ...
- 在 ASP.NET MVC 中创建自定义 HtmlHelper
在ASP.NET MVC应用程序的开发中,我们常碰到类似Html.Label或Html.TextBox这样的代码,它将在网页上产生一个label或input标记.这些HtmlHelper的扩展方法有些 ...
- MVC自定义分页
MVC自定义分页 之前我发表了一篇MVC无刷新分页的文章,里面用的是MvcPager控件,但是那个受那个控件限制,传值只能用PagedList,各方面都受到了限制,自由度不够高,现在还是做MVC无刷新 ...
- asp.net mvc 自定义pager封装与优化
asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自 ...
- mvc自定义全局异常处理
异常信息处理是任何网站必不可少的一个环节,怎么有效显示,记录,传递异常信息又成为重中之重的问题.本篇将基于上篇介绍的html2cancas截图功能,实现mvc自定义全局异常处理.先看一下最终实现效果: ...
- ASP.NET MVC 自定义路由中几个需要注意的小细节
本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...
- MVC中HtmlHelper用法大全参考
MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...
- MVC验证11-对复杂类型使用jQuery异步验证
原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...
随机推荐
- python, pycharm, virtualenv 的使用
创建虚拟环境,一次安装多个库 pip freeze > requirements.txt (库的名字都在里面) 产生requirements.txt文件 在另一个环境下使用 pip instal ...
- Git使用之二:下载远程代码到本地指定文件夹
一.前期工作: 1.准备好本地的文件夹 2.如果后期需要继续以该文件夹进行同步的,则需要配置该文件夹,方法请参考之前的 Git使用之一:创建仓储和提交文件 二.用clone(克隆方式下载) 在本地下 ...
- PS作业
- redis入门:介绍、特点、安装、各类型常用操作
一.redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. Redis支持多种类型的数据结构,如 字符串(strings), 散列(ha ...
- 了解url
我对自己知道关于url的编码和解码的一些进行了一下整理. 我们的例子是百度翻译的地址: http://fanyi.baidu.com/translate#en/zh/The%20%22%3F%20ar ...
- linux开发基本库
1.ZeroMQ zmq是一个消息队列.可以在进程内.进程间.TCP.多播中,以消息为单位传输数据,而不是socket的字节流.官方主页上有下载.使用.文档,蛮全的. 常用模式有:Request-Re ...
- 第十篇 Python的字符串格式化
字符串格式化:就是按照你的意愿做一个拼接的过程. 1. 字符串格式化的第一种方式:百分号方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. %[ ...
- gitbook.explore更新升级了, 不能再搜索了
www.gitbook.com/explore 不再是一个索引页面 Can I browse existing projects on GitBook ? The new version of Git ...
- Java判断数字的奇偶
package anli; import java.util.Scanner; public class jiou { public static void main(String[] args){ ...
- nopcommerce商城系统--技术与系统需求
原址:http://www.nopcommerce.com/technologysystemrequirements.aspx 在这里,我们将着眼于nopCommerce的系统要求.为了运行nopCo ...