我有以下 ViewModel(仅显示几个属性以便于阅读)
public class Contract{
public string Name {get; set;}
public ContractTerm PrpTerm { get; set; }
}
PRP 术语模型是这样的
public class PrpTerm{
public int Id {get; set;}
public string Name {get; set;}
}
对于我的模型验证,我使用 XML 文件来注入注释。我已经Name
根据需要设置了属性,并且ContractTerm
没有指定任何验证(它是列表中的可选字段)。我的观点是有一个名称的文本框和一个合同条款的选择列表。
当我尝试保存时,我将ModelState.IsValid
属性设为 false,表示该PRPTerm.Id
值是必需的。我知道这是因为我们无法将空值分配给 int。
有人知道避免这种情况被验证的方法吗?
我尝试使用 Bind(Exclude 注释,但这会从数据提交中删除该字段,这不允许我获取用户选择的值(如果发生这种情况)。我无法在 PrpClass 上将 id 设置为可为空. 另一个选项是在 ViewModel 上设置 PrpTerm Id,但我需要以正当理由证明该更改是合理的。
任何的想法?