假设我有以下ViewModel
:
public class PersonViewModel
{
[Required]
public String Email { get; set; }
[Required]
public String FirstName { get; set; }
[Required]
public String LastName { get; set; }
}
这是ViewModel
而非原始Entity
,我在两个地方使用此模型,第一个我要验证所有字段,但在另一个我要排除{{1来自模型验证的字段。无论如何都要指定从验证中排除字段吗?
答案 0 :(得分:8)
您可以使用
ModelState.Remove("Email");
删除模型状态中与隐藏字段相关的条目。
最佳解决方案是将视图模型分为两部分:
public class PersonViewModel
{
[Required]
public String FirstName { get; set; }
[Required]
public String LastName { get; set; }
}
public class PersonWithEmailViewModel : PersonViewModel
{
[Required]
public String Email { get; set; }
}
答案 1 :(得分:2)
丑陋的解决方案:
ModelState.Remove("Email");
推荐解决方案:
创建另一个ViewModel。 VM应该代表您的视图,因此如果您的视图没有“电子邮件”字段,请为其创建合适的VM。