ASP.NET Core MVC – Form Tag Helpers

简介

我们已经介绍过Tag Helpers以及一些最常用的Tag Helpers,也谈到了缓存Tag Helpers。在这篇文章中,我们将讨论表单Tag Helpers。

HTML或Web表单通过使用各种HTML元素用于收集来自用户的输入,如输入框、复选框、单选按钮、下拉列表等。使用 <form> 元素时,我们通常使用POST请求。虽然也可以使用GET请求,不过GET请求建议提交于少量、非敏感的数据来获取数据。

ASP.NET Core MVC提供了一些Form Tag Helpers,让我们看看最重要的是什么。

Form Tag Helper

当我们使用<form>元素时,ASP.NET Core MVC会自动添加防御CSRF攻击保护措施;它通过生成隐藏的请求验证令牌以防止CSRF攻击。

看一个简单的例子:

此代码输出的界面如下:

然而,这并不是全部,在幕后发生了什么:

请注意在HTTP Post操作方式中,RequestVerificationToken 与内置的[ValidateAntiForgeryToken]属性一起工作,同时,该请求方法会被标记为post方式。

Form Tag Helper的还提供了asp-route-{ParameterName}属性,其中参数名称为被添加到路由的值;并且还提供了@Html.BeginForm@Html.BeginRouteForm另一种清晰的替代方式。

如果我们添加一个自定义路由:

并将表单修改为如下:

我们得到以下HTML:

它将执行与刚才指定的 controller 和 action 方法。

这是使用旧的HTML Helpers语法:

    @using (Html.BeginForm("Edit", "Categories")) {}

新的语法是:

    <form asp-action="Edit" asp-controller="Categories">{}

第一个可能看起来更短更好,但第二个更自然,对于设计师或一名JS开发人员来说,在使用Angular、React的过程中,这将会更加自然。

Input Tag Helper

这一个很简单,它是@Html.EditorFor(m => m.Name)的替代方式。

假设我们有一个具有 Name 属性的视图模型:

    <input asp-for="Name" />`

会产生如下代码:

    <input type="text" id="Name" name="Name" />

Label Tag Helper

这一个也很简单,它是@Html.LabelFor(m => m.Name)的替代方式。

它与输入框Tag Helper配合使用:

    <input asp-for="Name" /><label asp-for="Name" />

与其它一样,也具有智能感知功能,一旦您开始键入,就会检测属性的名称:

如果我们将 Display 特性应用于 Name 属性:

这是我们将获得的HTML内容:

    <label for="Name">Category Name</label>

TextArea Tag Helper

这一个非常类似于Input Tag Helper:

以下Razor代码:

    <textarea asp-for="Name"></textarea>`

我们将得到以下输出:

Validation Message Tag Helper

我们使用Validation Tag Helper为我们的视图模型的属性显示验证消息,使用方式也很简单:

    <span asp-validation-for="Name"></span>

我们得到的HTML:

    <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>

相关文章:

  • asp.net core mvc实现伪静态功能

  • 如何在多个项目中分离Asp.Net Core Mvc的Controller和Areas

  • asp.net core 编译mvc,routing,security源代码进行本地调试

  • ASP.NET Core MVC四种枚举绑定方式

  • ASP.NET Core MVC 模型绑定用法及原理

  • ASP.NET Core MVC 控制器创建与依赖注入

  • ASP.NET Core MVC 过滤器介绍

  • ASP.NET Core MVC Tag Helpers 介绍

  • ASP.NET Core MVC – Caching Tag Helpers

原文地址:http://www.cnblogs.com/tdfblog/p/form-taghelpers-in-asp-net-core-mvc.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

表单提交报错405的解决方式

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。今天&#xff0c;分享一个bug的解决的方法&#xff0c;到最后解决了也不知道为啥这样是可以的&#xff0c;原来的方法是不可以的……01问题描述项目中有这样的一个需求&#xff0c;就是在原来的…

JavaFX图表(二)之饼图

翻译自 JavaFX - 饼图 饼图是将值表示为具有不同颜色的圆的切片。标记这些切片&#xff0c;并且在图表中表示与每个切片对应的值。 以下是一张饼图&#xff0c;描绘了一个实例中各公司的移动销售情况。 在JavaFX中&#xff0c;饼图由名为PieChart的类表示。该类属于包javaf…

RabbitMQ(mall项目学习 死信、延迟队列)

文章目录RabbitMQ的死信队列RabbitMQ的延迟队列mall项目 业务场景说明Rabbitmq 插件实现延迟队列启动&#xff08; UI 界面 &#xff09;RabbitMQ的死信队列 TTL&#xff1a;time to live 消息存活时间 如果消息在存活时间内未被消费&#xff0c;则会被清除 RabbitMQ⽀持两种…

asp.net中条件查询+分页

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。 今天&#xff0c;分享的是asp.net中条件查询分页的小案例。 如下图所示&#xff1a; 各个功能模块均已标注&#xff0c;先大致介绍一下业务。 \1. 点击左侧图书类别&#xff0c;根绝类别编…

.NET Standard@Xamarin.Forms

编者语 &#xff1a; .NET技术社群由于微软的开源和跨平台性越来越受关注&#xff0c;但国内都是碍于大家以往的认识阻碍了发展&#xff0c;没有太多大的企业敢于去把.NET作为第一生产力。你作为.NET程序员有义务去保护好你的饭碗&#xff0c;也要改变人对.NET的认知。希望大家…

JavaFX图表(一)

翻译自 JavaFX - 图表 通常&#xff0c;图表是数据的图形表示。有各种各样的图表来表示数据&#xff0c;如条形图&#xff0c;饼图&#xff0c;折线图&#xff0c;散点图等。 JavaFX支持各种饼图和XY图表。在XY平面上表示的图表包括AreaChart&#xff0c;BarChart&#xff0…

我们在进行着一场拔河比赛……

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。不知不觉&#xff0c;3班已经面临就业了。似乎每个班级到三期的最后阶段&#xff0c;出现的问题都那么类似&#xff0c;那就是一部分同学已经“放弃努力”了&#xff0c;大家貌似在等着最后的就业&…

JavaFX图表(三)之折线图

翻译自 JavaFX - 折线图 折线图或折线图将信息显示为由直线段连接的一系列数据点&#xff08;标记&#xff09;。折线图显示数据如何以相等的时间频率变化。 以下是描绘不同年份学校数量的折线图。 在JavaFX中&#xff0c;折线图由名为LineChart的类表示。该类属于包javafx…

释放.NET Big Memory和内存映射文件的能量

要点&#xff1a; 通常Web服务器具有的内存远远超过了.NET GC在正常情况下可以有效处理的量。缓存服务器的性能优势通常会因增加了网络成本而下降。内存映射文件通常是在系统重新启动后填充缓存的最快方式。服务器端调优的目的是出站网络连接达到饱和的程度。 通过最小化CPU、…

3班的第二次模拟面试

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。今天&#xff0c;三班进行了第二次模拟面试&#xff0c;还是和第一次一样&#xff0c;分为技术面试和人事面试&#xff0c;不过这次不一样的一点就是我亲自面的大部分开发学生。通过这次模拟面试&#…

JavaFX图表(四)之面积图

翻译自 JavaFX - 面积图 面积图用于绘制基于区域的图表。它绘制给定系列点与轴之间的区域。通常&#xff0c;此图表用于比较两个数量。 以下是一张区域图表&#xff0c;描绘了一个星期内两个人消耗的水果数量。 在JavaFX中&#xff0c;Area图表由名为AreaChart的类表示。该类…

深入聊聊微服务架构的身份认证问题

从单体应用架构到分布式应用架构再到微服务架构&#xff0c;应用的安全访问在不断的经受考验。为了适应架构的变化、需求的变化&#xff0c;身份认证与鉴权方案也在不断的变革。面对数十个甚至上百个微服务之间的调用&#xff0c;如何保证高效安全的身份认证&#xff1f;面对外…

今晚在学校值班……

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。今晚在学校值班。每次进班巡查的时候&#xff0c;不管是哪个班级&#xff0c;同学们个个都是精神抖擞&#xff0c;双眼紧盯屏幕&#xff0c;双手放在键盘上&#xff0c;看起来貌似正在打代码或思考似的…

JavaFX图表(五)之气泡图

翻译自 JavaFX - 气泡图 气泡图用于种植三维数据; 第三个维度将由气泡的大小&#xff08;半径&#xff09;表示。 以下是描绘完成工作的气泡图。 在JavaFX中&#xff0c;气泡图由名为BubbleChart的类表示。该类属于包javafx.scene.chart。通过实例化此类&#xff0c;您可以…

IdentityServer4 实现自定义 GrantType 授权模式

OAuth 2.0 默认四种授权模式&#xff08;GrantType&#xff09;&#xff1a; 授权码模式&#xff08;authorization_code&#xff09;简化模式&#xff08;implicit&#xff09;密码模式&#xff08;password&#xff09;客户端模式&#xff08;client_credentials&#xff09…

分享几个上机案例题

1.从控制台中输入一个数&#xff0c;如果是1&#xff0c;输出壹&#xff1b;如果是2&#xff0c;输出贰&#xff0c;如果是三&#xff0c;输出叁&#xff0c;否则输出没有static void Main(string [] args) {Console.WriteLine("请输入一个数");int aint.Parse(Conso…

Java自动化邮件中发送图表(四)之javafx Chart

一、Javafx Chart JavaFX支持各种饼图和XY图表。在XY平面上表示的图表包括AreaChart&#xff0c;BarChart&#xff0c;BubbleChart&#xff0c;LineChart&#xff0c;ScatterChart&#xff0c;StackedAreaChart&#xff0c;StackedBarChart等。 注意&#xff1a;在Server JRE…

springboot项目不加端口号也可以访问项目的方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。今天给大家分享的是&#xff0c;在nginx中配置域名以及端口号。前言&#xff1a;实际开发中&#xff0c;我们可能经常会有这样的情况&#xff0c;在本地的springboot项目中&#xff0c;会设置项…

NET中解决KafKa多线程发送多主题的问题

一般在KafKa消费程序中消费可以设置多个主题&#xff0c;那在同一程序中需要向KafKa发送不同主题的消息&#xff0c;如异常需要发到异常主题&#xff0c;正常的发送到正常的主题&#xff0c;这时候就需要实例化多个主题&#xff0c;然后逐个发送。 在NET中用RdKafka组件来做消息…

JavaFX图表(六)之条形图

翻译自 JavaFX - 条形图 条形图用于表示使用矩形条的分组数据。这些条的长度描绘了这些值。条形图中的条形可以垂直或水平绘制。 以下是条形图&#xff0c;比较各种汽车品牌。 在JavaFX中&#xff0c;条形图由名为BarChart的类表示。该类属于包javafx.scene.chart。通过实例…