我有一個模型,我用於記錄的編輯和插入頁面。其中一項業務要求是編輯時需要某個字段,而不是新的字段。原來之前這個特殊的功能被添加到案卷,我有模型,像這樣: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