我有这个问题一直困扰着我。
假设我有这个注册表单,我需要填写它,所有属性都是RequiredAttribute,模型是一个名为“User”的EF实体。
我有第二个编辑帐户详细信息表单,此时不再需要特定字段(“用户名”),因为我已经拥有它,用户不需要再次填写它事实上,它在编辑表格中显示出来。
问题: 当发布第二个编辑表单时,显然我被用户名RequiredAttribute。
我只需在“排除”选项中添加“Bind”属性即可解决此问题,但这是我当前的模型:
public class AccountDetailsModel
{
public User user { get; set; }
public string NEWPASSWORD1 { get; set; } // new password
public string NEWPASSWORD2 { get; set; } // new password comparison
}
看起来像带有排除的绑定属性选项不能处理复杂的模型类型。我不能让它在这种情况下工作。
我陷入困境,现在长时间挠头......
我怎样才能克服这一点?
我只想在两个不同的视图上重复使用我的EF实体(用户)及其DataAnnotations。
提前致谢。
答案 0 :(得分:1)
我只想在两个不同的视图上重复使用我的EF实体(用户)及其DataAnnotations。
这是问题所在。你不应该这样做。我建议您设置视图模型,这些视图模型是专门为给定视图定制的类,并且仅包含此视图的必要验证属性。为了简化EF模型和视图模型之间的映射,您可以使用AutoMapper。
答案 1 :(得分:0)
将UserName放在详细信息页面的隐藏输入字段中。