ASP.NET Core 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:

它将执行与刚才指定的 controlleraction 方法。

这是使用旧的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 – Form Tag Helpers》https://codingblast.com/asp-net-core-mvc-form-tag-helpers/

翻译:Sweet Tang

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

欢迎转载,请在明显位置给出出处及链接。

ASP.NET Core MVC – Form Tag Helpers的更多相关文章

  1. ASP.NET Core MVC – Caching Tag Helpers

    简介 缓存可以大大提高应用程序加载时间和响应速度.我们可以使用缓存Tag Helpers缓存不会频繁更改的HTML内容. 在上一篇文章中,我们谈到了Tag Helpers,演示Tag Helpers能 ...

  2. ASP.NET Core MVC – 自定义 Tag Helpers

    ASP.NET Core Tag Helpers系列目录,共四篇: ASP.NET Core MVC Tag Helpers 介绍 ASP.NET Core MVC – Caching Tag Hel ...

  3. asp.net Core MVC + form validation + ajax form 笔记

    asp.net Core MVC 有特别处理form,controller可以自己处理model的验证,最大的优势是写form时可以少写代码 先了解tag helper ,这东西就是element上的 ...

  4. ASP.NET Core MVC – Tag Helpers 介绍

    ASP.NET Core Tag Helpers系列目录,这是第一篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...

  5. ASP.NET Core MVC – Tag Helper 组件

    ASP.NET Core Tag Helpers系列目录,这是第五篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...

  6. ASP.NET Core MVC Tag Helpers 介绍

    简介 Tag Helpers 提供了在视图中更改和增强现有HTML元素的功能.将它们添加到视图中,会经过Razor模板引擎处理并创建一个HTML,之后再返回给浏览器.有一些Tag Helpers,其实 ...

  7. ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览

    原文:Overview of ASP.NET Core MVC 作者:Steve Smith 翻译:张海龙(jiechen) 校对:高嵩 ASP.NET Core MVC 是使用模型-视图-控制器(M ...

  8. 创建ASP.NET Core MVC应用程序(4)-添加CRUD动作方法和视图

    创建ASP.NET Core MVC应用程序(4)-添加CRUD动作方法和视图 创建CRUD动作方法及视图 参照VS自带的基架(Scaffold)系统-MVC Controller with view ...

  9. 008.Adding a model to an ASP.NET Core MVC app --【在 asp.net core mvc 中添加一个model (模型)】

    Adding a model to an ASP.NET Core MVC app在 asp.net core mvc 中添加一个model (模型)2017-3-30 8 分钟阅读时长 本文内容1. ...

随机推荐

  1. flask笔记二

    web表单 web表单是浏览者和网之间的一个互动平台,完成浏览器和服务器之间的数据交互. 1.用Flask-WTF来处理表单 (1)在根目录下编辑扩展配置--config.py CSRF_ENABLE ...

  2. 关于MATLAB处理大数据坐标文件201762

    经过头脑风暴法想出了很多特征,目前经过筛选已经提交了两次数据,数据提交结果不尽如人意,但是收获很大. 接下来继续提取特征,特征数达到27时筛选出20条特征,并找出最佳搭配

  3. PHP设计模式:工厂方法

    示例代码详见https://github.com/52fhy/design_patterns 工厂方法 工厂方法是针对每一种产品提供一个工厂类.通过不同的工厂实例来创建不同的产品实例. 相比简单工厂, ...

  4. Linux基础命令之总结一

    [root@ping ~]# tree -L 1 /   #使用tree 命令查看根目录下的一层的目录结构 ls - list directory contents[root@ping ~]# ls ...

  5. windbg工具安装配置及dump抓取

    安装与配置windbg 安装与配置windbg的symbol(符号) 第一步 下载WinDBG, 第二步 双击下载的文件安装windbg.安装时注意记住安装到那里了. 第三步 windbg访问符号需要 ...

  6. a链接返回上一页

    <a href="javascript:void(0);" onclick="javascript:history.go(-1);" style='mar ...

  7. Django+MySQL开发项目:内容管理系统cms(一)

    Baker-Miller Pink被科学方法证实可以平静情绪并且抑制食欲的颜色,具有amazing的效果.基百里面说实验结果表明该颜色具有: "a marked effect on lowe ...

  8. HTML5 服务器推送事件(Server-sent Events)

    服务器推送事件(Server-sent Events)WebSocket 协议的一种服务器向客户端发送事件&数据的单向通讯.目前所有主流浏览器均支持服务器发送事件,当然除了 Internet ...

  9. Java String charAt()方法

    描述 此方法返回位于字符串的指定索引处的字符.该字符串的索引从零开始. 语法 此方法定义的语法如下: public char charAt(int index) 参数 这里是参数的细节: index  ...

  10. Java+Tomcat + Idea + Jrebel 实现热部署

    1. 首先安装idea的jrebel插件, jrebel是收费的,所以要在网上下载验证码. 2. 安装好以后再setting 菜单能看到一个jrebel的菜单. 3.  4.其中需要选中frame失去 ...