ASP.net MVC 屬性驗證

1. 建立Model

public class Order
    {
        [ScaffoldColumn(false)]
        public int OrderID { get; set; }
        [Required(ErrorMessage = "必須輸入名字")]
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")]
        public double Total { get; set; }
    }


[Required(ErrorMessage = "必須輸入名字")] 是表明該字段爲必輸項,也可以使用其他的一些屬性標籤,甚至可以自定義

 

2. 在Controller中定義Action

public class HomeController : Controller
    {
        public ActionResult Index()
        {
            Order o= new Order();
            o.OrderID = 1;
            o.FirstName = "George";
            o.LastName = "Guo";
            o.Email = "[email protected]";
            o.Total = 125;
            return View(o);
        }

        [HttpPost]
        public ActionResult Index(Order order)
        {
            if(ModelState.IsValid)
            {
                return RedirectToAction("About");
            }
            return View(order);
        }
    }


 

第一個沒有參數的是默認顯示時調用,帶HTTPPOST標籤的,是當form進行post提交的時候調用,在post的時候會看model是否是valid,如果是說明成功,否則返回到當前view,並傳入當前invalid model。

 

3. 在前臺頁面中定義form

@using(Html.BeginForm("Index","Home",FormMethod.Post))
{
    @Html.EditorFor(m=>m.FirstName)
    @Html.ValidationMessageFor(m=>m.FirstName)
    
    <input type="hidden" name="OrderID" id="OrderID" [email protected] />
    <input type="submit" value="submit" /> 
}

 

@Html.EditorFor(m=>m.FirstName) 爲該對象字段生成TextBox標籤並綁定數據

@Html.ValidationMessageFor(m=>m.FirstName),如果model爲invalid則顯示與之相關的錯誤消息

發佈了257 篇原創文章 · 獲贊 6 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章