首頁 後端開發 php教程 分享MVC資料驗證實例介紹

分享MVC資料驗證實例介紹

Jun 15, 2017 pm 01:48 PM
mvc 數據驗證

這篇文章主要為大家詳細介紹了MVC資料驗證的相關資料,具有一定的參考價值,有興趣的小夥伴們可以參考一下

一、一般情況

對於使用過MVC框架的人來說,對MVC的資料驗證不會陌生,例如,我有一個Model如下:


public class UserInfo
  {
    [Required(ErrorMessage = "UserName不可为空1111")]
    public string UserName { get; set; }
    public string Sex { get; set; }
    public string Mobile { get; set; }
    public string Address { get; set; }
  }
登入後複製

前端:


@using (Html.BeginForm()) 
{
  @Html.AntiForgeryToken()
  <p class="form-horizontal">
    <h4>UserInfo</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <p class="form-group">
      @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      @Html.LabelFor(model => model.Sex, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.Sex, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Sex, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      @Html.LabelFor(model => model.Mobile, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.Mobile, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Mobile, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      <p class="col-md-offset-2 col-md-10">
        <input type="submit" value="Create" class="btn btn-default" />
      </p>
    </p>
  </p>
}
登入後複製

效果:

 

是的,MVC可以透過對一些屬性添加一定的特性來驗證資料。這對大家來說可能並不陌生。

如果只是這樣就完事了,那麼也就沒事麼意思了。

二、常用情況

在實際的開發中,我們大都是透過EF,或其他方式,使得資料庫中的每一個表或視圖,都在程式碼中對應的一個類別模型,對於透過資料庫產生的模型,我們不宜修改,退一步講,即使我們在這個類別中對一些屬性增加一些資料驗證的特性,那麼,資料庫發生變化後,如果我再重新產生這些Model,我們之前添加好的驗證特性將沒有了,那麼,我們該如何解決這樣的問題呢?

假如:


public class UserInfo
  {  
    public string UserName { get; set; }
    public string Sex { get; set; }
    public string Mobile { get; set; }
    public string Address { get; set; }
  }
登入後複製

UserInfo是透過資料庫產生的模型,對於資料庫產生的模型,我們不宜修改。但那是,我們又需要對這個模型中的某些屬性進行資料驗證,例如需要對UserName屬性進行非空驗證,那我們該怎麼做呢?

大家通常會想到部分類,是的,我們可以透過部分類來解決上述問題。

首先,我們將模型中的類別加上關鍵字 partial ,然後我們再寫一個這個模型的部分類別。


public partial class UserInfo
  {
    [Required(ErrorMessage = "UserName不可为空1111")]
    public string UserName { get; set; }
  }
登入後複製

但是,這樣會提示我們一個錯誤,就是類別中存在重複的屬性,是的,部分類別中,屬性是不可以重名的。那麼,我們該怎麼辦呢,MVC框架已經給了我們解決方案了。

我們可以這麼寫:


[MetadataType(typeof(MeteUserInfo))]
  public partial class UserInfo
  {
    private class MeteUserInfo
    {
      [Required(ErrorMessage = "UserName不可为空1111")]
      public string UserName { get; set; }
    }
  }
登入後複製

這樣,我們上述的問題就迎刃而解了。

以上是分享MVC資料驗證實例介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在 Excel 中建立帶有符號的下拉列表 如何在 Excel 中建立帶有符號的下拉列表 Apr 14, 2023 am 09:04 AM

在 Excel 工作表中建立下拉清單很容易,只要它是一個普通的下拉式選單。但是,如果您必須透過添加特殊符號使其特別,或者透過添加一些文字以及符號使其更加特別,該怎麼辦?好吧,聽起來很有趣,但想知道這是否可能?當 Geek Page 隨時為您提供協助時,您有什麼不知道的答案?這篇文章都是關於創建下拉式選單,帶有符號以及符號和文字。希望你喜歡閱讀這篇文章!另請閱讀:如何在 Microsoft Excel 中新增下拉式選單第 1 部分:建立僅包含符號的下拉清單要建立帶有符號的下拉式選單,我們首先需要建立來源

PHP8新功能範例:如何使用型別宣告和程式碼加強資料驗證? PHP8新功能範例:如何使用型別宣告和程式碼加強資料驗證? Sep 12, 2023 pm 01:21 PM

PHP8新功能範例:如何使用型別宣告和程式碼加強資料驗證?引言:隨著PHP8的發布,開發人員迎來了一系列的新功能和改進。其中,最令人興奮的之一是類型聲明和程式碼加強資料驗證的功能。本文將以一些實際範例為例,介紹如何利用這些新特性來加強資料驗證,提升程式碼的可讀性和可維護性。類型聲明的優點:在PHP7之前,變數的類型是可以隨意變化的,這為資料驗證帶來了很大的困難。

PHP MVC 架構:建立面向未來的 Web 應用程式 PHP MVC 架構:建立面向未來的 Web 應用程式 Mar 03, 2024 am 09:01 AM

引言在當今快速發展的數位世界中,建立健壯、靈活且可維護的WEB應用程式至關重要。 PHPmvc架構提供了實現這一目標的理想解決方案。 MVC(模型-視圖-控制器)是一種廣泛使用的設計模式,可將應用程式的各個方面分離為獨立的元件。 MVC架構的基礎MVC架構的核心原理是分離關注點:模型:封裝應用程式的資料和業務邏輯。視圖:負責呈現資料並處理使用者互動。控制器:協調模型和視圖之間的交互,管理使用者請求和業務邏輯。 PHPMVC架構phpMVC架構遵循傳統MVC模式,但也引進了語言特定的功能。以下是PHPMVC

PHP MVC 架構的進階指南:解鎖進階功能 PHP MVC 架構的進階指南:解鎖進階功能 Mar 03, 2024 am 09:23 AM

mvc架構(模型-視圖-控制器)是PHP開發中最受歡迎的模式之一,因為它為組織程式碼和簡化WEB應用程式的開發提供了清晰的結構。雖然基本的MVC原理對於大多數Web應用程式來說已經足夠,但對於需要處理複雜資料或實現高級功能的應用程序,它存在一些限制。分離模型層分離模型層是高階MVC架構常見的技術。它涉及將模型類分解為較小的子類,每個子類專注於特定功能。例如,對於一個電子商務應用程序,您可以將主模型類別分解為訂單模型、產品模型和客戶模型。這種分離有助於提高程式碼的可維護性和可重複使用性。使用依賴注入依賴

excel資料驗證怎麼用-excel資料驗證的使用方法 excel資料驗證怎麼用-excel資料驗證的使用方法 Mar 04, 2024 pm 12:25 PM

大家知道excel資料驗證怎麼用嗎?下文小編就帶來了excel資料驗證的使用方法,希望對大家能夠有所幫助,一起跟著小編來學習一下吧!1、首先在EXCEL表格中,選擇需要設定下拉選項的儲存格,如下圖所示:2、然後在選單列上點選【資料】,如下圖所示:3、開啟資料選單後,就能看到【資料驗證】選項了,點選【數據驗證】後,在打開的選項中繼續點擊【數據驗證】即可打開數據驗證窗口去進行設置,如下圖所示:上面就是小編為大家帶來的excel數據驗證怎麼用的全部內容,希望對大家能夠有所幫助哦。

PHP語言開發中如何處理開發環境與生產環境的資料不一致錯誤? PHP語言開發中如何處理開發環境與生產環境的資料不一致錯誤? Jun 10, 2023 am 10:31 AM

隨著互聯網的快速發展,開發人員的任務也隨之多樣化和複雜化。特別是對於PHP語言開發人員而言,在開發過程中面臨的最常見問題之一就是在開發環境和生產環境中,資料不一致的錯誤問題。因此,在開發PHP應用程式時,如何處理這些錯誤是開發人員必須面對的重要問題。開發環境和生產環境的差異首先需要明確的是,開發環境和生產環境是不同的,它們有不同的設定和配置。在開發環境

如何在Python中進行資料可靠性驗證和模型評估 如何在Python中進行資料可靠性驗證和模型評估 Oct 20, 2023 pm 04:06 PM

如何在Python中進行資料可靠性驗證和模型評估資料可靠性驗證和模型評估是在使用機器學習和資料科學模型時非常重要的一步。本文將介紹如何使用Python進行資料可靠性驗證和模型評估,並提供具體的程式碼範例。資料可靠性驗證(DataReliabilityValidation)資料可靠性驗證是指對所使用的資料進行驗證,以確定其品質和可靠性。以下是一些常用的數據可

ThinkPHP6表單驗證與資料驗證:保證資料的合法性 ThinkPHP6表單驗證與資料驗證:保證資料的合法性 Aug 26, 2023 pm 01:55 PM

ThinkPHP6表單驗證與資料驗證:保證資料的合法性在Web應用程式開發過程中,表單驗證是保證資料的合法性和完整性的重要一環。 ThinkPHP6框架提供了強大的表單驗證和資料驗證功能,可以簡化開發流程,並幫助我們減少錯誤和漏洞的產生。一、表單驗證驗證規則聲明ThinkPHP6支援使用註解方式對控制器的請求方法進行驗證規則的聲明。我們可以在控制器的請求方法上

See all articles