表單數據驗證方法(二)——ASP.NET後臺驗證

来源:https://www.cnblogs.com/CherishTheYouth/archive/2018/09/04/CherishTheYouth_904.html
-Advertisement-
Play Games

昨天寫了一下關於如何在前臺快捷實現表單數據驗證的方法,今天接著昨天的,把後臺實現數據驗證的方法記錄一下。先說明一下哈,我用的是asp.net,所以後臺驗證方法也是基於.net mvc來做的。 好了,閑言少敘,我回到正題上來啦。 後臺實現表單數據驗證的方法也是相當簡單的,下麵看我一步一步的來做哈。(為 ...


  昨天寫了一下關於如何在前臺快捷實現表單數據驗證的方法,今天接著昨天的,把後臺實現數據驗證的方法記錄一下。先說明一下哈,我用的是asp.net,所以後臺驗證方法也是基於.net mvc來做的。

  好了,閑言少敘,我回到正題上來啦。

  後臺實現表單數據驗證的方法也是相當簡單的,下麵看我一步一步的來做哈。(為了單純的說明表單驗證的方法,減少其他不必要的內容的說明,這裡我就不涉及資料庫了。)

1.新建一個.net mvc應用程式

這一步今天就不詳細講了,有時間的話再寫一篇關於如何新建項目和實現簡單增刪改查功能的博客,鞏固自己,順便幫幫和我一樣入地無門的菜雞們。建好的應用程式如圖所示,我的名字起為FormCheck:

 

 2.新建用戶信息欄位實體數據類User816.cs

(這個命名各位不要去糾結他哈,因為我這裡用的不是剛寫的熱乎代碼,而是8月16日寫的冷代碼,因為晚上時間有限,就不重新寫了)

  如下圖所示,我在Models文件夾中新建一個User816.cs的實體類,代碼如下:

 1 namespace FormCheck.Models
 2 {
 3     public class User816
 4     {
 5 
 6         public string userName { get; set; }
 7 
 8         public string passWord { get; set; }
 9 
10         public string eMail { get; set; }
11              
12     }
13 }

 

這裡我們寫了三個屬性,分別為用戶名、密碼和郵箱,下麵將依次為這幾個數據添加校驗方法。

主要添加[Required] ,[ StringLength] ,[RegularExpression] 三個吧,因為這三個是最常用的。

(1)Required

首先看看這個方法的定義:

這段代碼只需要看到能看懂的漢字就可以了,沒錯,就是那個 【指定的數據欄位的值是必須的】,好了現在我們知道這個是什麼意思了,那麼問題來了,這個東西怎麼用呢?看下麵:

   [Required(ErrorMessage ="*必填項")]
   public string userName { get; set; }

 

 在需要驗證的屬性上面用中括弧將Required包起來,然後可以添加上錯誤提示信息。怎麼樣,是不是很簡單,哈哈。

(2)StringLength

 這個也是一樣的,直接看看這個東東的意思和用法,就一筆帶過了吧:

 

 用法如下:

 [StringLength(5,ErrorMessage ="*超過長度了") ]
 public string userName { get; set; }

 

上面的第一個參數【5】指的是字元串的最大長度 ,當然這裡並不是只能設置最大長度,也可以設置最小長度,不止如此,還有很多其他的用法,這裡我就不細說了,具體的需要用到的同學可以在網上搜索資料。

(3)RegularExpression

這個就比較牛逼了,驗證正則表達式:

 

用法如下:

 [RegularExpression(@"^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$", ErrorMessage = "*郵箱格式錯誤")] //正則表達式
  public string eMail { get; set; }

 

 關於這幾個驗證方法就說到這啦,下麵我們看看實際怎麼用咯。

3.驗證數據

(1)在相應屬性上添加想要的驗證:

代碼如下所示:

namespace FormCheck.Models
{
    public class User816
    {
        [StringLength(5,ErrorMessage ="*超過長度了") ]
        [Required]
        public string userName { get; set; }

       
        [Required(ErrorMessage ="*必填項")]
        [Range(100,1000000,ErrorMessage ="*數字大小超出範圍了")]
        public string passWord { get; set; }

        [Required]
        [RegularExpression(@"^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$", ErrorMessage = "*郵箱格式錯誤")] //正則表達式
        public string eMail { get; set; }
             
    }
}

 

 (2)在前臺頁面引用User816.cs

首先,在HomeController中新建一個方法,取名為GetInfo(),然後添加對應的視圖,然後引用User816:

如圖所示:

 

 

 

 (3)新建表單

代碼如下:

<div>
    @using (Html.BeginForm("GetInfoFunc", "Home", FormMethod.Post))
    {
        @Html.ValidationSummary(true)
        <label class="btn-default">姓名</label>
        @Html.TextBoxFor(model => model.userName);
        @Html.ValidationMessageFor(model => model.userName)
        <br>
        <label class="btn-default">密碼</label>
        @Html.TextBoxFor(model => model.passWord);
        @Html.ValidationMessageFor(model => model.passWord)
        <br>
        <label class="btn-default">郵箱</label>
        @Html.TextBoxFor(model => model.eMail);
        @Html.ValidationMessageFor(model => model.eMail)
        <button class="btn-info" id="submit">提交</button>

    }
</div>

 上面的代碼中,實現後臺校驗功能的主要是這一句哦,用的時候千萬記得不要搞漏了:

 @Html.ValidationMessageFor(model => model.userName)

 @Html.ValidationMessageFor(model => model.passWord)


 @Html.ValidationMessageFor(model => model.eMail)

 

 其實只需要這三步已經可以看到效果了,但是為了保證一個表單提交demo的完整性,我就再補上第四步啦,哈哈。

(4)前臺提交數據,後臺接收

ajax方式提交表單:

<script type="text/javascript">
    $(function () {
        $("#submit").click(function () {
            var userName = $("#userName").val();
            var passWord = $("#passWord").val();
            var eMail = $("#eMail").val();
            $.ajax({
                url: "@Url.Action("GetInfoFunc", "Home")",
                type: "post",
                data: {
                    userName: userName,
                    passWord: passWord,
                    eMail: eMail
                },
                success: function (data) {
                    alert(data);
                }
            });
        });
    });

</script>

 

後臺創建控制器 GetInfoFunc()接收數據:

[HttpPost]
 public ActionResult GetInfoFunc()
 {
            string userName = Request["userName"];
            string passWord = Request["passWord"];
            string eMail = Request["eMail"];
            return Content(userName + "," + passWord + "," + eMail);
 }        

 

4.查看結果

 

 

 這裡實現的效果跟我昨天寫的前端js校驗的方法差不多哦,而且也非常的簡單呢。

 

 好了,今天就寫到這裡啦,好好學習,天天向上,啊哈哈哈哈哈!

我的eMail:[email protected]

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • c++ forward關鍵字 forward的由來:模板函數中的推導類型,作為函數的參數時,即使用T&& arg來聲明,推導出來具體的類型後,也不能把推導出來後的具體類型,轉化成右值引用。forward就是為瞭解決這個問題的。 下麵的例子就不能夠調用 解決辦法:加std::forward ...
  • MapReduce簡介 MapReduce的原理圖 2.MR原理圖 根據代碼簡單瞭解MR。 代碼簡單解析: 根據執行流程圖我們不難發現,首先我們從Mapper下手,然後著手Reducer,而Reducer的key(in),value(in),肯定是Mapper的key(out),value(out) ...
  • (1)編譯型和解釋型區別 編譯型:一次性將程式編譯成二進位給電腦執行。 優點:速度快 缺點:不能夠跨平臺 解釋型:運行一段解釋一段 優點:可跨平臺 缺點:速度慢 (2)python是一種動態解釋性的強類型定義語言 (3)變數只能是數字,字母,下滑線的任意組合,就是開頭不能是數字。(註意:特殊字元也 ...
  • Django中簡單添加HTML、css、js等文件 首先申明下自己的環境, python版本3.65(親測3.7版本有毒,沒解決掉!) Django版本1.11.15(版本比較成熟,也可以用最新的版本) 創建預設Django項目後 添加Html 在urls.py文件中添加如圖代碼,照抄也可以哦!但都 ...
  • (2)比較運算 (3)賦值運算 (4)邏輯運算 ...
  • 現在人們哪怕是買個牙刷可能都會在淘寶上面,而且在買東西的時候每個人都會做的一件事情就是看評論,看看之前買家評論瞭解商品質量,外觀是不是和圖片一樣等等。但是如果真的想要一條一條去看的話,那時間是真的要很多,當然瞭如果買的小物件那倒無所謂,如果是比較貴重的物品就必須得好好看了(PS:在小編心裡100以上 ...
  • 1.遍歷後壓入反轉數組,輸出2.array_unshift — 在數組開頭插入一個或多個單元,將傳入的單元插入到 array 數組的開頭int array_unshift ( array &$array , mixed $value1 [, mixed $... ] ) ...
  • 最近在練習寫爬蟲的時候,正巧同學的女朋友有需求,大概是爬取知網內的幾千個主題的數據,每一個主題的條數記錄有幾條的到幾千條的不等,總來的來說也算是個上萬數量級的爬蟲了,分析了下知網,發現使用專業檢索,可以完成我的目標,然後通過chrome的developer tools大概分析了下了請求數據包,發現知 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...