ASP .NET Core Web开发之 Tag Helpers
Tag Helpers是一个非常好用的工具
官方链接:Tag Helpers in ASP.NET Core | Microsoft Docs
What are Tag Helpers?
Tag Helpers enable server-side code to participate in creating and rendering HTML elements in Razor files. For example, the built-in ImageTagHelper can append a version number to the image name. Whenever the image changes, the server generates a new unique version for the image, so clients are guaranteed to get the current image (instead of a stale cached image). There are many built-in Tag Helpers for common tasks - such as creating forms, links, loading assets and more - and even more available in public GitHub repositories and as NuGet packages. Tag Helpers are authored in C#, and they target HTML elements based on element name, attribute name, or parent tag. For example, the built-in LabelTagHelper can target the HTML element when the LabelTagHelper attributes are applied. If you’re familiar with HTML Helpers, Tag Helpers reduce the explicit transitions between HTML and C# in Razor views. In many cases, HTML Helpers provide an alternative approach to a specific Tag Helper, but it’s important to recognize that Tag Helpers don’t replace HTML Helpers and there’s not a Tag Helper for each HTML Helper. Tag Helpers compared to HTML Helpers explains the differences in more detail.
Tag Helpers常用在用在表单(Forms)中,使用示例如下:
Member.cs:
public class Member
{public int PersonId { get; set; }public string Name { get; set; }[EmailAddress]public string Email { get; set; }[DataType(DataType.Password)]public string Password { get; set; }[DataType(DataType.PhoneNumber)]public string Telephone { get; set; }[Display(Name="Date of Birth")]public DateTime DateOfBirth { get; set; }public decimal Salary { get; set; }[Url]public string Website { get; set; }[Display(Name="Send spam to me")]public bool SendSpam { get; set; }public int? NumberOfCats { get; set; }public IFormFile Selfie { get; set; }
}
RegisterModel.cs:
public class RegisterModel : PageModel
{[BindProperty]public Member Member { get; set; }public void OnGet(){}
}
Register.cshtml:
<form method="post"><input asp-for="Member.PersonId" /><br /><input asp-for="Member.Name" /><br /><input asp-for="Member.Email" /><br /><input asp-for="Member.Password" /><br /><input asp-for="Member.Telephone" /><br /><input asp-for="Member.Website" /><br /><input asp-for="Member.DateOfBirth" /><br /><input asp-for="Member.Salary" /><br /><input asp-for="Member.SendSpam" /><br /><input asp-for="Member.NumberOfCats" /><br /><input asp-for="Member.Selfies" /><br /><button>Submit</button>
</form>
Tag Helpers可以和在表单(Forms)的验证一起用,使用示例如下:
UserModel.cs
public class UserModel : PageModel
{[BindProperty][Required][MinLength(6)]public string UserName { get; set; }[BindProperty][Required, MinLength(6)]public string Password { get; set; }[BindProperty, Required, Compare(nameof(Password))]public string Password2 { get; set; }
xxx.cshtml:
@section scripts{@await Html.PartialAsync("_ValidationScriptsPartial")
}
<form method="post"><div><input asp-for="UserName" /><span asp-validation-for="UserName"></span></div><div><input asp-for="Password" /><span asp-validation-for="Password"></span></div><div><input asp-for="Password2" /><span asp-validation-for="Password2"></span></div><div><input type="submit" /></div>
</form>
ASP .NET Core Web开发之 Tag Helpers相关推荐
- ASP.NET Core Web API下事件驱动型架构的实现(四):CQRS架构中聚合与聚合根的实现
在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅.通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件总线的实现.接下来对于事件驱动型架构的讨论,就需 ...
- 加速ASP.NET Core WEB API应用程序。 第三部分
深度重构和完善ASP.NET Core WEB API应用程序代码 (Deep refactoring and refinement of ASP.NET Core WEB API applicati ...
- 如何测试ASP.NET Core Web API
在本文中,我们将研究如何测试你的ASP .NET Core 2.0 Web API解决方案.我们将了解使用单元测试进行内部测试,使用全新的ASP .NET Core的集成测试框架来进行外部测试. 本文 ...
- 重温.NET下Assembly的加载过程 ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线...
重温.NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现 ...
- 如何测试 ASP.NET Core Web API
在本文中,我们将研究如何测试你的 ASP .NET Core 2.0 Web API 解决方案.我们将了解使用单元测试进行内部测试,使用全新的 ASP .NET Core 的集成测试框架来进行外部测试 ...
- ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
在上文中,我们讨论了事件处理器中对象生命周期的问题,在进入新的讨论之前,首先让我们总结一下,我们已经实现了哪些内容.下面的类图描述了我们已经实现的组件及其之间的关系,貌似系统已经变得越来越复杂了. 其 ...
- ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理
在ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现中,我介绍了事件驱动型架构的一种简单的实现,并演示了一个完整的事件派发.订阅和处理的流程.这种实现太简单了,百十行 ...
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地 ...
- 用JWT来保护我们的ASP.NET Core Web API
在用Middleware给ASP.NET Core Web API添加自己的授权验证 中,自己动手写了一个Middleware来处理API的授权验证,现在就采用另外一种方式来处理这个授权验证的问题,毕 ...
最新文章
- 重视隐私信息安全,笑迎人脸识别百亿蓝海
- C语言 文件操作9--fgetc()和fputc()
- python中关键字 表示空类型_python中什么表示空类型
- 征服用计算机弹法,征服WIN7
- 人人影视字幕组因盗版视频被查 涉案金额1600余万元
- Android启动页欢迎界面大全 (网址)
- 月考分析五年级英语html,第一学期五年级英语期末考试试卷分析
- LongAdder原理
- Rockchip Android12 Codec2 插件 多线程实现代码
- 最受程序员 欢迎的14个社区
- 【AcWing】语法基础课听课笔记
- vue富媒体编辑器组件:vue-wangeditor的使用
- springBoot redis开发的Java快递代拿系统(含人脸识别,验证码登录)
- 剪映专业版、PR:技巧+资源+获取方式
- 微信小程序开发者工具初体验及实现技术初探
- debian9.6安装qq遇到的坑(成功安装qq)
- [最完整的前端学习手册]——JavaScript基础一:
- 咸鱼Maya笔记—骨骼的基本操作
- MVC-《东方之星酒店管理系统》项目研发总结
- java小黑框运行时汉字为古文,Spring使用中中文乱码的情况
热门文章
- cytoscape插件bingo使用
- 使用 conda 和 Jupyter 创建你的自定义 R 包,转换笔记为幻灯片
- 基础001.Markdown编写云笔记
- Python使用matplotlib函数subplot可视化多个不同颜色的折线图、使用set_major_formatter函数自定义设置y轴数值标签格式为百分比
- R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(添加均值、标准偏差)实战(dot plot)
- R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis)的语法
- pandas中set_option的常用设置:显示所有行、显示所有列、控制浮点型精度、每个数据元素的显示字符数、对齐形式等
- R语言临床预测模型的评价指标与验证指标实战:自定义的综合判别改善指标(Integrated Discrimination Improvement, IDI)函数
- K近邻(KNN)算法是基于实例的算法,如果训练样本数量庞大,预测的时候挨个计算距离效率会很低下,如何破解?
- KL变换+PCA+关系