網(wǎng)站首頁 編程語言 正文
簡介
我們已經(jīng)介紹過Tag Helpers以及一些最常用的Tag Helpers,也談到了緩存Tag Helpers。在這篇文章中,我們將討論表單Tag Helpers。
HTML或Web表單通過使用各種HTML元素用于收集來自用戶的輸入,如輸入框、復(fù)選框、單選按鈕、下拉列表等。使用??元素時(shí),我們通常使用POST請(qǐng)求。雖然也可以使用GET請(qǐng)求,不過GET請(qǐng)求建議提交于少量、非敏感的數(shù)據(jù)來獲取數(shù)據(jù)。
ASP.NET Core MVC提供了一些Form Tag Helpers,讓我們看看最重要的是什么。
Form Tag Helper
當(dāng)我們使用元素時(shí),ASP.NET Core MVC會(huì)自動(dòng)添加防御CSRF攻擊保護(hù)措施;它通過生成隱藏的請(qǐng)求驗(yàn)證令牌以防止CSRF攻擊。
看一個(gè)簡單的例子:
此代碼輸出的界面如下:
然而,這并不是全部,在幕后發(fā)生了什么:
請(qǐng)注意在HTTP Post操作方式中,RequestVerificationToken?與內(nèi)置的[ValidateAntiForgeryToken]
屬性一起工作,同時(shí),該請(qǐng)求方法會(huì)被標(biāo)記為post方式。
Form Tag Helper的還提供了asp-route-{ParameterName}屬性,其中參數(shù)名稱為被添加到路由的值;并且還提供了@Html.BeginForm
和@Html.BeginRouteForm
另一種清晰的替代方式。
如果我們添加一個(gè)自定義路由:
并將表單修改為如下:
我們得到以下HTML:
它將執(zhí)行與剛才指定的?controller?和?action?方法。
這是使用舊的HTML Helpers語法:
@using (Html.BeginForm("Edit", "Categories")) { }
新的語法是:
第一個(gè)可能看起來更短更好,但第二個(gè)更自然,對(duì)于設(shè)計(jì)師或一名JS開發(fā)人員來說,在使用Angular、React的過程中,這將會(huì)更加自然。
Input Tag Helper
這一個(gè)很簡單,它是@Html.EditorFor(m => m.Name)
的替代方式。
假設(shè)我們有一個(gè)具有?Name?屬性的視圖模型:
`
會(huì)產(chǎn)生如下代碼:
Label Tag Helper
這一個(gè)也很簡單,它是@Html.LabelFor(m => m.Name)
的替代方式。
它與輸入框Tag Helper配合使用:
與其它一樣,也具有智能感知功能,一旦您開始鍵入,就會(huì)檢測屬性的名稱:
如果我們將?Display?特性應(yīng)用于?Name?屬性:
這是我們將獲得的HTML內(nèi)容:
TextArea Tag Helper
這一個(gè)非常類似于Input?Tag Helper:
以下Razor代碼:
`
我們將得到以下輸出:
Validation Message Tag Helper
我們使用Validation Tag Helper為我們的視圖模型的屬性顯示驗(yàn)證消息,使用方式也很簡單:
我們得到的HTML:
原文鏈接:https://www.cnblogs.com/tdfblog/p/form-taghelpers-in-asp-net-core-mvc.html
相關(guān)推薦
- 2023-12-14 如何查看瀏覽器內(nèi)核版本
- 2023-11-13 linux tar指令壓縮解壓縮文件夾、文件命令詳解
- 2022-11-07 pandas中字典和dataFrame的相互轉(zhuǎn)換_python
- 2022-04-25 搭建RocketMQ在本地IDEA開發(fā)調(diào)試環(huán)境教程_服務(wù)器其它
- 2022-10-04 go?mode?tidy出現(xiàn)報(bào)錯(cuò)go:?warning:?“all“?matched?no?pack
- 2022-10-04 goland把go項(xiàng)目打包進(jìn)docker鏡像的全過程記錄_Golang
- 2023-03-15 k8s編排之StatefulSet知識(shí)點(diǎn)詳解一_云其它
- 2022-11-03 ios利用RunLoop原理實(shí)現(xiàn)去監(jiān)控卡頓實(shí)例詳解_IOS
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支