求asp.net mvc3大神帮看看,没金币。。。程序员不在乎吧。。。

问题如下:

  public class Product
    {
        [Key]
        public int Id { get; set; }

        [DisplayName("商品类别")]
        [Required]
        public virtual ProductCategory productCategory { get; set; }

        [DisplayName("商品名称")]
        [Required(ErrorMessage="请输入商品名称")]
        [MaxLength(60,ErrorMessage="商品名称不可超过60个字")]
        public string Name { get; set; }

        [DisplayName("商品简介")]
        [Required(ErrorMessage = "请输入商品简介")]
        [MaxLength(250, ErrorMessage = "商品名称不可超过250个字")]
        public string Description { get; set; }

        [DisplayName("商品颜色")]
        [Required(ErrorMessage = "请输入商品颜色")]       
        public string Color { get; set; }

        [DisplayName("商品价格")]
        [Required(ErrorMessage = "请输入商品价格")]
        [Range(99,10000, ErrorMessage = "商品价格必须介于99-10000之间")]
        public int Price { get; set; }

        [DisplayName("上架时间")]
        [Description("如果不设置上架时间,代表此商品永不上架")]
        public DateTime PublishOn { get; set; }

        [DisplayName("商品地址")]
        public string Url { get; set; }
    }
        public class ProductCategory
    {
        [Key]
        public int Id
        {
            get;
            set;
        }

        [DisplayName("商品类别")]
        [Required(ErrorMessage="请输入商品类别名称")]
        [MaxLength(20,ErrorMessage="类别名称不可超过20个字")]
        public string Name
        {
            get;
            set;
        }

        public virtual ICollection<Product> Products { get; set; }

这是我做的电子商城的其中两个model,目前在view添加商品的时候,需要给商品表的商品类别(product表中的外键)赋值,但是因为在product对象中productCategory属性是一个ProductCategory对象,而因此ModelState验证时productCategory属性是null,ModelState.isVaild是false,求问如何解决...

再定义一个类作为ViewModel,不要把实体类直接当作ViewModel