.net core web api 數據驗證(DataAnnotations)

目錄

一、什么是 DataAnnotations?

二、擴展驗證邏輯(自定義驗證器)


一、什么是 DataAnnotations?

DataAnnotations 是一組特性(Attributes),用于在模型類上定義驗證規則。主要用于屬性級別的數據驗證,如必填、長度限制、格式要求等。

常見的 DataAnnotation 屬性:

例如

public class UserDto
{[Required]public string Name { get; set; }[Range(18, 99)]public int Age { get; set; }[EmailAddress]public string Email { get; set; }
}

二、擴展驗證邏輯(自定義驗證器)

public class NotAdminAttribute : ValidationAttribute
{protected override ValidationResult IsValid(object value, ValidationContext validationContext){if (value.ToString().ToLower() == "admin"){return new ValidationResult("不能使用管理員名稱");}return ValidationResult.Success;}
}public class UserDto
{[NotAdmin]public string Username { get; set; }
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77513.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小白從0學習網站搭建的關鍵事項和避坑指南

以下是針對小白從零學習網站搭建時需要注意的關鍵事項和避坑指南,幫助你高效學習、少走彎路: 一、學習路徑注意事項 不要跳過基礎 誤區:直接學習框架(如 React、Laravel)而忽視 HTML/CSS/JS 基礎。 正確做法&#xff…

深入剖析JavaScript內存泄漏:識別、定位與實戰解決

在JavaScript的世界里,開發者通常不必像使用C那樣手動管理內存的分配和釋放,這得益于JavaScript引擎內置的垃圾回收(Garbage Collection, GC)機制。然而,這并不意味著我們可以完全忽視內存管理。“自動"不等于&qu…

2025-04-19 Python 強類型編程

文章目錄 1 方法標注1.1 參數與返回值1.2 變參類型1.3 函數類型 2 數據類型2.1 內置類型2.2 復雜數據結構2.3 類別選擇2.4 泛型 3 標注方式3.1 注釋標注3.2 文件標注 4 特殊情形4.1 前置引用4.2 函數標注擴展4.3 協變與逆變4.4 dataclass 5 高級內容5.1 接口5.2 泛型的協變/逆變…

ETF價格相關性計算算法深度分析

1. 引言 在金融市場中,相關性就像是資產之間“跳舞”的默契程度。想象一下兩位舞者(ETF),有時步伐一致,有時各跳各的。對于管理大規模資金的投資組合而言,準確理解ETF之間的“舞步同步性”對于風險管理、資…

上海人工智能實驗室:LLM無監督自訓練

📖標題:Genius: A Generalizable and Purely Unsupervised Self-Training Framework For Advanced Reasoning 🌐來源:arXiv, 2504.08672 🌟摘要 🔸推進LLM推理技能引起了廣泛的興趣。然而,當前…

【WPF】 在WebView2使用echart顯示數據

文章目錄 前言一、NuGet安裝WebView2二、代碼部分1.xaml中引入webview22.編寫html3.在WebView2中加載html4.調用js方法為Echarts賦值 總結 前言 為了實現數據的三維效果,所以需要使用Echarts,但如何在WPF中使用Echarts呢? 一、NuGet安裝WebV…

2025年3月 Python編程等級考試 2級真題試卷

2025年3月青少年軟件編程Python等級考試(二級)真題試卷 題目總數:37 總分數:100 選擇題 第 1 題 單選題 老師要求大家記住四大名著的作者,小明機智地想到了可以用字典進行記錄,以下哪個選項的字典…

6. 話題通信 ---- 使用自定義msg,發布方和訂閱方cpp,python文件編寫

1)在功能包下新建msg目錄&#xff0c;在msg目錄下新建Person.msg,在Person.msg文件寫入&#xff1a; string name uint16 age float64 height 2)修改配置文件 2.1) 功能包下package.xml文件修改 <build_depend>message_generation</build_depend><exec_depend…

多線程使用——線程安全、線程同步

一、線程安全 &#xff08;一&#xff09;什么是線程安全問題 多個線程&#xff0c;同時操作同一個共享資源的時候&#xff0c;可能會出現業務安全的問題。 &#xff08;二&#xff09;用程序摹擬線程安全問題 二、線程同步 &#xff08;一&#xff09;同步思想概述 解決線…

4. 話題通信 ---- 發布方和訂閱方cpp文件編寫

本節對應趙虛左ROS書籍的2.1.2 以10hz,發布消息和消息的訂閱 1) 在功能包的src文件夾下&#xff0c;新建cpp文件&#xff0c;并且寫入 #include "ros/ros.h" #include "std_msgs/String.h" int main(int argc, char *argv[]) {setlocale(LC_ALL,"&…

有哪些哲學流派適合創業二

好的&#xff0c;讓我們更深入地探討如何將?哲學與數學?深度融合&#xff0c;構建一套可落地的創業操作系統。以下從?認知框架、決策引擎、執行算法?三個維度展開&#xff0c;包含具體工具和黑箱拆解&#xff1a; ?一、認知框架&#xff1a;用哲學重構商業本質? 1. ?本體…

【后端】【python】Python 爬蟲常用的框架解析

一、總結 Python 爬蟲常用的框架主要分為 三類&#xff1a; 輕量級請求庫&#xff1a;如 requests、httpx&#xff0c;用于快速發請求。解析與處理庫&#xff1a;如 BeautifulSoup、lxml、pyquery。爬蟲框架系統&#xff1a;如 Scrapy、pyspider、Selenium、Playwright 等&am…

力扣-hot100(無重復字符的最長子串)

3. 無重復字符的最長子串 中等 給定一個字符串 s &#xff0c;請你找出其中不含有重復字符的 最長 子串 的長度。 示例 1: 輸入: s "abcabcbb" 輸出: 3 解釋: 因為無重復字符的最長子串是 "abc"&#xff0c;所以其長度為 3。暴力直觀解法一&#xff1…

六邊形棋盤格(Hexagonal Grids)的坐標

1. 二位坐標轉六邊形棋盤的方式 1-1這是“波動式”的 這種就是把【方格子坐標】“左右各錯開半個格子”做到的 具體來說有如下幾種情況 具體到廟算平臺上&#xff0c;是很巧妙的用一個4位整數&#xff0c;前兩位為x、后兩位為y來進行表示 附上計算距離的代碼 def get_hex_di…

C++之虛函數 Virtual Function

1. 普通虛函數&#xff08;Virtual Function&#xff09; 定義&#xff1a;基類中用 virtual 聲明&#xff0c;允許派生類 覆蓋&#xff08;Override&#xff09;。特點&#xff1a; 基類可提供默認實現。派生類可選擇性覆蓋&#xff08;若不覆蓋&#xff0c;則調用基類版本&a…

基于尚硅谷FreeRTOS視頻筆記——15—系統配制文件說明與數據規范

目錄 配置函數 INCLUDE函數 config函數 數據類型 命名規范 函數與宏 配置函數 官網上可以查找 最核心的就是 config和INCLUDE INCLUDE函數 這些就是裁剪的函數 它們使用一個ifndef。如果定義了&#xff0c;就如果定義了這個宏定義&#xff0c;那么代碼就生效。 通過ifn…

HAL庫配置RS485+DMA+空閑中斷收發數據

前言&#xff1a; &#xff08;1&#xff09;DMA是單片機集成在芯片內部的一個數據搬運工&#xff0c;它可以代替單片機對數據進行傳輸、存儲&#xff0c;節約CPU資源。一般應用場景&#xff0c;ADC多通道采集&#xff0c;串口收發&#xff08;頻繁進入接收中斷&#xff09;&a…

從零開始解剖Spring Boot啟動流程:一個Java小白的奇幻冒險之旅

大家好呀&#xff01;今天我們要一起探索一個神奇的話題——Spring Boot的啟動流程。我知道很多小伙伴一聽到"啟動流程"四個字就開始頭疼&#xff0c;別擔心&#xff01;我會用最通俗易懂的方式&#xff0c;帶你從main()方法開始&#xff0c;一步步揭開Spring Boot的…

下載HBuilder X,使用uniapp編寫微信小程序

到官網下載HBuilder X 地址&#xff1a;HBuilderX-高效極客技巧 下載完成后解壓 打開解壓后的文件夾找到HBuilderX.exe 打開顯示更多&#xff0c;發送到桌面快捷方式 到桌面上啟動HBuilderX.exe啟動應用 在工具點擊插件安裝 選擇安裝Vue3編譯器 點擊新建創建Vue3項目 編寫項目…

詳解與HTTP服務器相關操作

HTTP 服務器是一種遵循超文本傳輸協議&#xff08;HTTP&#xff09;的服務器&#xff0c;用于在網絡上傳輸和處理網頁及其他相關資源。以下是關于它的詳細介紹&#xff1a; 工作原理 HTTP 服務器監聽指定端口&#xff08;通常是 80 端口用于 HTTP&#xff0c;443 端口用于 HT…