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