我有一个模型,我用于记录的编辑和插入页面。其中一项业务要求是编辑时需要某个字段,而不是新的字段。原来之前这个特殊的功能被添加到案卷,我有模型,像这样:MVC模型的条件验证
[Required(ErrorMessage = "*")]
[Range(0.0, (double)decimal.MaxValue)]
[DisplayName("Cost")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public decimal ProposedCost { get; set; }
我想要么删除所需的属性,如果它是一个插入的形式,或者,如果编辑的形式添加。什么是更好的方法?我所有的其他验证都按照上面的方式完成或者我可以改变模型状态?思考?
编辑
东西我要澄清的是,他们仍然被允许插入新的成本,就不是必需的。
我试过这个,但仍然能够保存编辑记录没有建议的成本。我放置了一个断点,并打了Validationresult。思考? – Seth
你确定你检查过'ModelState.IsValid'吗?我更新了答案以示例。另外请注意,如果我们不允许设置ProposedCost,则ProposedCost必须为空。 – andreister
是的,我错过了,很好。添加的其他属性在后台自动进行客户端检查。无论如何,我可以挖掘到?这当然超出了我原来的问题范围。 – Seth