明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP.NET MVC 3層合作-數據驗證

[摘要]首先我們在M層創(chuàng)建一個類:using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namesp...
首先我們在M層創(chuàng)建一個類:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace WebApplication1.Models
{
    public class GuestResponse
    {
        //數據驗證,必填項,如果不填ErrorMessage 請輸入你的用戶名
        [Required(ErrorMessage = "請輸入你的用戶名!")]
        public string Name { get; set; }
        //同上
        [Required(ErrorMessage = "請輸入郵箱")]
        //正則表達式,判斷是否是郵箱格式
        [RegularExpression(".+\\@.+\\..+",
        ErrorMessage = "請輸入正確的郵箱格式")]
        public string Email { get; set; }
        //同上
        [Required(ErrorMessage = "請輸入你的手機號碼")]
        public string Phone { get; set; }
        public bool? WillAttend { get; set; }
    }
}

代碼中已有注釋,不多說。

下面,V層:

@model WebApplication1.Models.GuestResponse
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>RsvpForm</title>
</head>
<body>
    @using (Html.BeginForm())
    {
        @Html.ValidationSummary()
        <p>Your name: @Html.TextBoxFor(x => x.Name) </p>
        <p>Your email: @Html.TextBoxFor(x => x.Email)</p>
        <p>Your phone: @Html.TextBoxFor(x => x.Phone)</p>
        <p>
            Will you attend?
            @Html.DropDownListFor(x => x.WillAttend, new[] {
            new SelectListItem() {Text = "Yes, I'll be there",
            Value = bool.TrueString},
            new SelectListItem() {Text = "No, I can't come",
            Value = bool.FalseString}
            }, "Choose an option")
        </p>
        <input type="submit" value="Submit RSVP" />
    }
</body>
</html>

這里注意第一行,

@model WebApplication1.Models.GuestResponse

我們綁定我們寫的數據類,這樣我們才能順利創(chuàng)建表單。

然后是C層:

 [HttpGet]
        public ViewResult RsvpForm() {
            return View();
        }
        [HttpPost]
        public ViewResult RsvpForm(GuestResponse model)
        {
            if (ModelState.IsValid)
            {
                // TODO: Email response to the party organizer
                return View("Thanks", model);
            }
            else
            {
                // there is a validation error
                return View();
            }
        }

這里我們有兩個RsvpForm,我們在上面添加提交方式,分別是Get和Post

if (ModelState.IsValid)

是否通過數據驗證,通過返回視圖Thanks,且把表單傳過來的值傳給Thanks視圖

數據驗證不通過,返回原視圖,

這里注意V層

 @Html.ValidationSummary()

添加這句話,在數據驗證的時候,數據不通過,視圖層才能顯示我們的錯誤提示信息。

運行截圖演示:

ASP.NET MVC 三層合作-數據驗證

我們只輸入了姓名,其他沒有輸入,提示錯誤信息

我們輸入一個正確的:

ASP.NET MVC 三層合作-數據驗證

然后點擊,調到Thanks視圖,Thanks視圖代碼如下:

@model WebApplication1.Models.GuestResponse

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Thanks</title>
</head>
<body>
    <p> 
        <h1>Thank you, @Model.Name!</h1>
        @if (Model.WillAttend == true)
        {
            @:It's great that you're coming. The drinks are already in the fridge!
}
        else
        {
            @:Sorry to hear that you can't make it, but thanks for letting us know.
}
    </p>
</body>
</html>

這里注意,我們也要綁定我們寫的模型類:


 @Model.Name

我們輸入的姓名


Model.WillAttend == true

我們輸入的值,像傳其他,跟這樣類似。

結果截圖:

ASP.NET MVC 三層合作-數據驗證

至此,我們的MVC三層合作,數據驗證,完成!

本文講解了ASP.NET MVC 三層合作-數據驗證,更多相關內容請關注php中文網。

相關推薦:

簡易 PHP+MySQL 分頁類

兩個不用遞歸的樹形數組構造函數

HTML轉Excel,并實現打印,下載功能

以上就是ASP.NET MVC 三層合作-數據驗證的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。