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则显示与之相关的错误消息