中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何對(duì)MVC進(jìn)行數(shù)據(jù)驗(yàn)證

這篇文章主要介紹如何對(duì)MVC進(jìn)行數(shù)據(jù)驗(yàn)證,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、天津網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為天津等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

一、一般情況

對(duì)于使用過MVC框架的人來說,對(duì)MVC的數(shù)據(jù)驗(yàn)證不會(huì)陌生,比如,我有一個(gè)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">
    <h5>UserInfo</h5>
    <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>
}

效果:

如何對(duì)MVC進(jìn)行數(shù)據(jù)驗(yàn)證

是的,MVC可以通過對(duì)一些屬性添加一定的特性來對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。這對(duì)大家來說可能并不陌生。

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

二、常用情況

在實(shí)際的開發(fā)中,我們大都是通過EF,或者其他方式,使得數(shù)據(jù)庫中的每一個(gè)表或視圖,都在代碼中對(duì)應(yīng)的一個(gè)類模型,對(duì)于通過數(shù)據(jù)庫生成的模型,我們不宜修改,退一步講,即使我們?cè)谶@個(gè)類中對(duì)一些屬性增加一些數(shù)據(jù)驗(yàn)證的特性,那么,數(shù)據(jù)庫發(fā)生變化后,如果我再重新生成這些Model,我們之前添加好的驗(yàn)證特性將沒有了,那么,我們?nèi)绾谓鉀Q這樣的問題呢?

假如:

public class UserInfo
  {  
    public string UserName { get; set; }
    public string Sex { get; set; }
    public string Mobile { get; set; }
    public string Address { get; set; }
  }

UserInfo是通過數(shù)據(jù)庫生成的一個(gè)模型,對(duì)于數(shù)據(jù)庫生成的模型,我們不宜修改。但那是,我們又需要對(duì)這個(gè)模型中的某些屬性進(jìn)行數(shù)據(jù)驗(yàn)證,比如需要對(duì)UserName屬性進(jìn)行非空驗(yàn)證,那么我們?nèi)绾巫瞿兀?/p>

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

首先,我們將模型中的類加上關(guān)鍵字 partial ,然后我們?cè)賹懸粋€(gè)這個(gè)模型的部分類。

public partial class UserInfo
  {
    [Required(ErrorMessage = "UserName不可為空1111")]
    public string UserName { get; set; }
  }

但是,這樣會(huì)提示我們一個(gè)錯(cuò)誤,就是類中存在重復(fù)的屬性,是的,部分類中,屬性是不可以重名的。那么,我們?cè)撛趺崔k呢,MVC框架已經(jīng)給了我們解決方案了。

我們可以這么寫:

[MetadataType(typeof(MeteUserInfo))]
  public partial class UserInfo
  {
    private class MeteUserInfo
    {
      [Required(ErrorMessage = "UserName不可為空1111")]
      public string UserName { get; set; }
    }
  }

以上是“如何對(duì)MVC進(jìn)行數(shù)據(jù)驗(yàn)證”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:如何對(duì)MVC進(jìn)行數(shù)據(jù)驗(yàn)證
網(wǎng)頁網(wǎng)址:http://m.rwnh.cn/article36/ippepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司、響應(yīng)式網(wǎng)站、營銷型網(wǎng)站建設(shè)、定制網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
田林县| 彝良县| 东莞市| 咸丰县| 宣恩县| 高邮市| 雷波县| 罗江县| 资溪县| 景德镇市| 凤冈县| 油尖旺区| 涟水县| 铁岭市| 双城市| 通许县| 辛集市| 天柱县| 绵竹市| 界首市| 敦化市| 隆化县| 如皋市| 阜阳市| 富裕县| 云南省| 绥化市| 新乡市| 吴桥县| 阿图什市| 西盟| 勐海县| 绥棱县| 岚皋县| 辰溪县| 博野县| 惠州市| 湟中县| 霸州市| 绥德县| 三明市|