2012-10-08 60 views
0

我的用户实体具有许多定义用户记录的不同属性。在创建默认的脚手架编辑和创建页面后,我们现在尝试在页面中实现一些区域,以便可以编辑和更新用户配置文件的类似区域,而无需回发和刷新整个属性列表。mvc控制器体系结构和模型绑定

我想分裂区域并入像下面单独的部分景色,然后使用@ 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参数仅指定一个子集的属性?

+0

使用查看模型! –

回答

1

在我看来,它确实是一个无法将模型分割成多个子模型,但是您也需要将您的动作拆分为子动作。每个动作都将绑定到该子类,而不是整个UserBase类。

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