ASP.NET Core MVC中Form Tag Helpers用法介绍

 更新时间:2022年02月21日 17:01:47   作者:Sweet-Tang  
这篇文章介绍了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中Form Tag Helpers用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • asp.net使用DataTable构造Json字符串的方法

    asp.net使用DataTable构造Json字符串的方法

    这篇文章主要介绍了asp.net使用DataTable构造Json字符串的方法,涉及asp.net字符串序列化、遍历及构造等操作技巧,需要的朋友可以参考下
    2015-12-12
  • MVC+EasyUI+三层新闻网站建立 建站准备工作(一)

    MVC+EasyUI+三层新闻网站建立 建站准备工作(一)

    这篇文章主要为大家详细介绍了MVC+EasyUI+三层新闻网站建立的第一篇,建站的准备工作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • .NET Core如何获取操作系统中的各种信息

    .NET Core如何获取操作系统中的各种信息

    .net core是最近讨论频率很高的话题,下面这篇文章主要给大家介绍了关于利用.NET Core如何获取操作系统中各种信息的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-05-05
  • 判断WebBrowser浏览器网页加载完成的处理方法

    判断WebBrowser浏览器网页加载完成的处理方法

    .net 中通过 SqlConnection 连接 sql server,我们会发现第一次连接时总是很耗时,但后面连接就很快,这个其实和SqlConnection 的连接池机制有关,正确的理解这个连接池机制,有助于我们编写高效的数据库应用程序。
    2013-04-04
  • Asp.Net Mvc2 增删改查DEMO附下载

    Asp.Net Mvc2 增删改查DEMO附下载

    接触mvc也有一段时间了(2.0),也看到园子里很多人在学习,自己也在园子里面看过前辈们写的博客,确实受益匪浅。本文写的都是基础中的基础,仅供想学习MVC的新手们入门之作
    2012-04-04
  • ASP.NET MVC3手把手教你构建Web

    ASP.NET MVC3手把手教你构建Web

    微软更新速度一直都是很快,目前最新版本是ASP.NET MVC 5.1,而我还在刚刚起步研究MVC3.0。本文是MVC的基础,构建最简单的MVC项目,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • 三层+存储过程实现分页示例代码

    三层+存储过程实现分页示例代码

    本文为大家介绍下三层+存储过程分页的具体实现,前后台及存储过程代码如下,感兴趣的朋友可以参考下哈
    2013-06-06
  • Element NavMenu导航菜单的使用方法

    Element NavMenu导航菜单的使用方法

    这篇文章主要介绍了Element NavMenu导航菜单的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • asp.net SharpZipLib的压缩与解压问题

    asp.net SharpZipLib的压缩与解压问题

    关于SharpZipLib的压缩与解压缩的实现代码,网络上有一堆,千遍一律,连注释也一模一样,一模一样的文章拷来拷去??
    2009-11-11
  • ASP.NET数据绑定GridView控件使用技巧

    ASP.NET数据绑定GridView控件使用技巧

    这篇文章主要为大家详细介绍了ASP.NET数据绑定GridView控件使用技巧,感兴趣的小伙伴们可以参考一下
    2016-03-03

最新评论