我想知道是否可以在某些控制器操作中禁用“必需的验证”属性。我想知道这是因为在我的一种编辑表单上,我不需要用户为他们先前已经指定的字段输入值。但是,我然后实现了一种逻辑,即当他们输入值时,它会使用一些特殊的逻辑来更新模型,例如对值进行哈希处理等。
关于如何解决此问题有任何建议吗?
编辑: 是的,客户端验证在这里是一个问题,因为它将不允许他们在不输入值的情况下提交表单。
通过使用视图模型可以轻松解决此问题。视图模型是专门为给定视图的需求量身定制的类。因此,例如,您可能需要以下视图模型:
public UpdateViewView { [Required] public string Id { get; set; } ... some other properties } public class InsertViewModel { public string Id { get; set; } ... some other properties }
将在其相应的控制器操作中使用:
[HttpPost] public ActionResult Update(UpdateViewView model) { ... } [HttpPost] public ActionResult Insert(InsertViewModel model) { ... }