Asp.net Vnext TagHelpers
概述
本文已经同步到《Asp.net Vnext 系列教程 》中]
TagHelpers 是vnext中引入的新功能之一。TagHelper 的作用是类似于发挥在以前版本的 ASP.NET MVC 的 HtmlHelpers
这是HtmlHelpers实现连接
@Html.ActionLink("About Me", "About", "Home", null, new { @class="btn btn-primary" })
这是TagHelper实现连接
<a asp-controller="Home" asp-action="About" class="btn btn-primary">About Me</a>
TagHelper 更像是html
详细介绍:http://www.cnblogs.com/TomXu/p/4496480.html
代码实现
/// <summary>
/// pager 是Tag名称
/// total-pages,current-page, link-url 是Tag属性
/// </summary>
[TargetElement("pager", Attributes = "total-pages, current-page, link-url")]
public class PagerTagHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
int totalPages, currentPage;
//获取属性值
if (int.TryParse(context.AllAttributes["total-pages"].ToString(), out totalPages) &&
int.TryParse(context.AllAttributes["current-page"].ToString(), out currentPage))
{
//获取属性值
var url = context.AllAttributes["link-url"];
//元素名称
output.TagName = "div";
//设置类容
output.PreContent.SetContent("<ul class=\"link-list\">"); var items = new StringBuilder();
for (var i = ; i <= totalPages; i++)
{
//用于创建HTML元素
var li = new TagBuilder("li");
//用于创建HTML元素
var a = new TagBuilder("a");
// 设置元素属性和值
a.MergeAttribute("href", $"{url}?page={i}");
a.MergeAttribute("title", $"Click to go to page {i}");
a.InnerHtml = i.ToString();
if (i == currentPage)
{
a.AddCssClass("active");
}
li.InnerHtml = a.ToString();
items.AppendLine(li.ToString());
}
output.Content.SetContent(items.ToString());
output.PostContent.SetContent("</ul>");
output.Attributes.Clear();
// // 设置元素属性和值
output.Attributes.Add("class", "pager");
}
}
}
在视图中_GlobalImport.cshtml 加入TagHelpers
@using WebApplication1
@using WebApplication1.Models
@using Microsoft.Framework.OptionsModel
@using Microsoft.AspNet.Identity
@addTagHelper "WebApplication1.PagerTagHelper, WebApplication1"
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"//添加 TagHelpers
@tagHelperPrefix "mb-" //添加前缀名
@addTagHelper "Microsoft.AspNet.Mvc.TagHelpers.AnchorTagHelper, Microsoft.AspNet.Mvc.TagHelpers" //移除TagHelpers
使用
运行
Asp.net Vnext TagHelpers的更多相关文章
- POCO Controller 你这么厉害,ASP.NET vNext 知道吗?
写在前面 阅读目录: POCO 是什么? 为什么会有 POJO? POJO 的意义 POJO 与 PO.VO 的区别 POJO 的扩展 POCO VS DTO Controller 是什么? 关于 P ...
- 兼容Mono的下一代云环境Web开发框架ASP.NET vNext
微软在2014年5月12日的TechEd大会上宣布将会发布下一代ASP.NET框架ASP.NET vNext的预览.此次发布的ASP.NET框架与以前相比发生了根本性的变化,凸显了微软“云优先”(cl ...
- 在Linux上运行ASP.NET vNext
最新的ASP.NET vNext完全开源且可以跨多个平台运行,在Windows环境下我尝试了下,几乎没花什么工夫就跑起了Sample,而在Linux环境下则要多花了不少时间,所以特别记录下整个过程,希 ...
- 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。
写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...
- Mac OS X上编写 ASP.NET vNext(一)KRE环境搭建
最新的asp.net vnext已经可以支持在mac上运行了,当然用的是mono.相比linux来说,mac的安装略显繁琐.对于大部分用Windows开发asp.net的程序员来说,初次配置还是很费时 ...
- 分享我对 ASP.NET vNext 的一些感受,也许多年回过头看 So Easy!
写在前面 阅读目录: Visual Studio "14" CTP 关于 ASP.NET vNext ASP.NET vNext 实践 后记 ASP.NET vNext 发布已经过 ...
- 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试
继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...
- 开发 ASP.NET vNext 初步总结(使用Visual Studio 14 CTP1)
新特性: vNext又称MVC 6.0,不再需要依赖System.Web,占用的内存大大减少(从前无论是多么简单的一个请求,System.Web本身就要占用31KB内存). 可以self-host模式 ...
- ASP.NET vNext 概述
兼容Mono的下一代云环境Web开发框架ASP.NET vNext 我们知道了ASP.NET vNext是一个全新的框架,是一个与时俱进的框架.这篇文章将深入讨论在整体架构更多的细节,文档参照 ASP ...
随机推荐
- 新建springboot项目启动出错 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
错误信息入下: 2018-06-23 01:48:05.275 INFO 7104 --- [ main] o.apache.catalina.core.StandardService : Stopp ...
- 《PHP和MySQL Web开发》读书笔记(上篇)
最近过得太浮躁了,实在自己都看不下去了,看了PHP圣经之后,觉得非常有必要要总结一下. Chapter1.快速入门 ·PHP标记:总共有三种风格,常用的还是XML风格为主 <?php echo ...
- javascript 千分
var str = '123456789'; function division(str){ var arr = str.split(''), len = arr.length, i = 3; whi ...
- 知名网站内部资料:WEB页面内容优化管理与性能技巧
回想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片.然而,随着移动开发的兴起, ...
- HDU 6096 String (AC自动机)
题目链接 Problem Description Bob has a dictionary with N words in it. Now there is a list of words in wh ...
- macOS 安装 pcl 1.8.0
Mac 上的 pcl 一直有问题. 找不到 pcl_viewer 查看 pcd 文件.写个程序用 pcl::visualization::CloudViewer 查看点云,遇到 Runtime Exc ...
- 网站发布IIS后堆栈追踪无法获取出错的行号
一.问题起因 系统发布上线后,有时会发生错误,那么错误的记录就很重要,它对于错误的排查和问题的发现有着重要的作用,通常我们采取的方式为Log日志文件记录和数据库错误记录.文本不会讨论错误记录的方式以及 ...
- 2015.07.15——prime素数
prime素数 1.素数也叫质数,定义是一个数只能被1和它自身整除. 素数从2开始,0,1都不是素数. 2.素数的判断(C++) 3.给定某个数,求小于这个数的所有素数 2.素数的判断(C++) bo ...
- 使用IntelliJ IDEA新建maven的javaWeb项目部署,启动访问index,jsp页面
对于用惯了eclipse的人,idea其实还挺不一样的,也是摸索了很久,看了好多博客,这里就记录一下,以后肯定经常用!,不过使用熟练了,功能确实非常强大,真的牛! 1 新建maven项目,配置好目录结 ...
- 【黑客免杀攻防】读书笔记17 - Rootkit基础
1.构建Rootkit基础环境 1.1.构建开发环境 VS2012+WDK8 1.2.构建基于VS2012的调试环境 将目标机.调试机配置在同一个工作组内 sVS2012配置->DRIVER-& ...