上篇文章介绍了简单的模型绑定,今天来说说复杂点模型绑定.
在开发中我们经常把数据库表结构都过一个类表现出来,这种实体模型.例如
在mvc中的模型绑定中.如果你的控制器参数是一个实体类
public ActionResult Test(Product Product,)
{
return View();
}
只需要把html页面中表单表情的name属性与上面实体属性的名次一样
<form id="Frm" method="post" action="@Url.Action("Test")"/>
商品类型:<input form="Frm" name="ProductCategory" type="text" /><br />
商品名称:<input form="Frm" name="Name" type="text" />
商品简介:<input form="Frm" name="Description" type="text"/><br />
商品颜色:<input form="Frm" name="color" type="text"/>
<input type="submit" form="Frm" />
当我们提交表单,mvc会自动把相同名称属性的值赋值给实体对象参数
假设实体中存在另外一个实体.如下
而商品的属性修改为
同时在控制器中我们还需要保存商品类型这个实体
public ActionResult Test(Product Product, ProductCategory ProductCategory)
{
return View();
}
在html中只需要将表示商品类别属性Name的文本的name属性修改为
当我们提交表单时mvc会同时为商品实体中的商品类别赋值,还会为商品类别中的属性赋值: