I have a view & model that I use for both the edit and the insert page for a record. One of the business requirements is that a certain field is required on edit but not on new. Originally before this particular feature was added to the docket, i had the model like so:
[Required(ErrorMessage = "*")]
[Range(0.0, (double)decimal.MaxValue)]
[DisplayName("Cost")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public decimal ProposedCost { get; set; }
I would like to either remove the required property if it is an insert form, or add it if an edit form. What is the better approach? All my other validation is done like above. Or can I alter the model state? Thoughts?
EDIT
Something I should clarify is that they are still permitted to insert a cost on new, just not required.
See Question&Answers more detail:os