数据模型规划(Models)
1 //DisplayNameAttribute 指定属性的显示名称 2 [DisplayName("商品类别")] 3 //DisplayColumnAttribute 指定Name为外键列 4 [DisplayColumn("Name")] 5 public class ProductCategory 6 { 7 [Key] 8 public int Id { get; set; } 9 10 [DisplayName("商品类别名称")] 11 [Required(ErrorMessage="请输入产品类别名称")] 12 public string Name { get; set; } 13 }
Notes:其中DisplayName属性,当我们使用Html.DisplayFor时会显示的标题文字,如:
@Html.LabelFor(model=>model.Name) 即会显示”商品类别名称",如果想要显示“商品类别”,即ProductCategory的DisplayName属性时该怎么操作呢?如下:
1 @model List<MvcShopping.Models.ProductCategory> 2 3 4 <h2>@Html.DisplayNameFor(model => model[0])</h2>
视图中的Model为List<ProductCategory>,model[0]为ProductCategory对象,所以@Html.DisplayNameFor(model[0])为“商品类别"。
即使区分[HttpPost]和[HttpGet]方法的签名也不能相同,如以下代码是不能通过编译的:
1 //会员注册页面 2 public ActionResult Register() 3 { 4 return View(); 5 } 6 7 //写入会员信息 8 [HttpPost] 9 public ActionResult Register() 10 { 11 return View(); 12 }