mvc控制器架构和模型绑定

时间:2012-10-08 10:25:09

标签: asp.net-mvc asp.net-mvc-4 model-binding

我的用户实体有许多不同的属性,用于定义用户记录。在创建默认的脚手架编辑和创建页面之后,我们现在尝试将一些区域实现到页面,因此可以编辑和更新用户配置文件的相似区域,而无需回发和刷新整个属性列表。

我在考虑将区域拆分为单独的部分视图,如下所示,然后使用@ Ajax.BeginForm(

    public partial class UserContact : UserBase
    {
        [DataType(DataType.EmailAddress)]
        [StringLength(255)]        
        public string EmailAddress { get; set; }

        [DataType(DataType.PhoneNumber)]
        [StringLength(50)]
        public string PhoneHome { get; set; }
            ...
    }
    public partial class UserAddress : UserBase
    {
        [StringLength(60)]
        public string AddressLine1 { get; set; }

        [StringLength(60)]
        public string AddressLine2 { get; set; }
            ...
    }
    public partial class UserBase
    {
        [Key]
        [Required(ErrorMessage = "User is required")]
        public System.Guid UserId { get; set; }
    }

刚发现binding关键字,我想知道人们使用哪种方法。我认为它在线上效率不高,并且每次都要回复整个Usermodel进行必要的验证,所以人们将主模型拆分成单独的模型,或者是否可能(甚至可以建议)使用bind参数仅指定属性的子集?

1 个答案:

答案 0 :(得分:1)

在我看来,确实建议将模型拆分为多个子模型,但是您还需要将操作拆分为子操作。每个动作都将“绑定”到该子类,而不是整个UserBase类。

如果您只使用一个操作,我认为不能[动态]指定要绑定的属性和不绑定的属性。