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()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...
随机推荐
- python2.7练习小例子(二十五)
25):题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他 ...
- sudo mount -o loop pm.img /mnt/floppy
sudo mount -o loop pm.img /mnt/floppy 最近在学<一个操作系统的实现>,由于这本书比较老了,所以有一些对于软盘的操作指令现在用会出现一些错误,当我进行虚 ...
- Markdown 基本用法
声明:引自 http://www.cnblogs.com/hnrainll/p/3514637.html ,感谢! 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置 ...
- RHCE7认证学习笔记17——KickStart安装系统
一.自动化安装系统工具 1.Cobbler 另一个自动化安装工具: 2.Kickstart 二.使用kickstart自动化安装系统 服务器安装的软件: 1.dhcp服务 [root@lin ...
- JAXB轻松转换xml对象和java对象
实体类如下: package com.cn.entity; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; ...
- nginx location优先级
目录 1. 配置语法 2. 配置实例 3. 总结: 网上查了下location的优先级规则,但是很多资料都说的模棱两可,自己动手实地配置了下,下面总结如下. 1. 配置语法 1> 精确匹配 lo ...
- 大数据de 2文章
点击可免费试用网易有数 文章来源:网易有数的搭积木原则阐述 ,经作者文雯授权发布 wo ceceshi 相关文章:[推荐] SpringBoot入门(五)--自定义配置
- jmeter多用户登录跨线程组操作传值
项目需求: 需要登录两个用户A.B,用户A操作完后会通知B,然后B再操作,B操作完结束或者再通知A. 实现思路: 1. 设置两个线程组Ⅰ.Ⅱ,组Ⅰ添加cookie管理器,里面添加用户A的操作:组Ⅱ添加 ...
- iOS笔记054 - 核心动画
注意事项 :locationInView和translationInView // 返回相对于控件自身内部触摸点的位置 [pan locationInView:self]; // 返回两个触摸点之间的 ...
- 输出1-n的全排(递归C++)
[问题描述] 输出1到n之间所有不重复的排列,即1到n的全排,要求所产生的任一数列不含有重复的数字. [代码展示] #include<iostream>using namespace st ...