一尘不染

在某些情况下禁用必需的验证属性

c#

我想知道是否可以在某些控制器操作中禁用“必需的验证”属性。我想知道这是因为在我的一种编辑表单上,我不需要用户为他们先前已经指定的字段输入值。但是,我然后实现了一种逻辑,即当他们输入值时,它会使用一些特殊的逻辑来更新模型,例如对值进行哈希处理等。

关于如何解决此问题有任何建议吗?

编辑:
是的,客户端验证在这里是一个问题,因为它将不允许他们在不输入值的情况下提交表单。


阅读 269

收藏
2020-05-19

共1个答案

一尘不染

通过使用视图模型可以轻松解决此问题。视图模型是专门为给定视图的需求量身定制的类。因此,例如,您可能需要以下视图模型:

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)
{
    ...
}
2020-05-19