现在的位置: 首页 > 综合 > 正文

ASP.net MVC 属性验证

2013年07月24日 ⁄ 综合 ⁄ 共 1166字 ⁄ 字号 评论关闭

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 = "www@yyy.com";
            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" value=@Model.OrderID />
    <input type="submit" value="submit" /> 
}

 

@Html.EditorFor(m=>m.FirstName) 为该对象字段生成TextBox标签并绑定数据

@Html.ValidationMessageFor(m=>m.FirstName),如果model为invalid则显示与之相关的错误消息

抱歉!评论已关闭.