在 MVC 中以编程方式包含模型属性 ASP.net

本文关键字:模型 属性 ASP net 方式包 MVC 编程 | 更新日期: 2023-09-27 18:32:34

我知道我可以通过绑定属性排除或包含属性上的绑定,但我不确定我是否可以以编程方式执行此操作(无需创建单独的 ViewModel)。我想实现这一点的原因是因为我有一个密码字段,只有在用户在其字段中输入值时才应包含该字段。

在 MVC 中以编程方式包含模型属性 ASP.net

使用:

if (string.IsNullOrEmpty(model.Password))
{
    ModelState.Remove("Password");
}

使 viewModel 中的 Password 属性可选,换句话说,不要批注 required。通常,所有其他验证(必需属性除外)在值为空/空时通过。

class MyViewModel
{
     [MinLength(6)]
     [HasUpper(1)]
     [HasLower(1)]
     // [Required] remove this line
     public String Password { get; set; }
}

然后在控制器操作测试中,密码属性是否为空或空

if (!String.IsNullOrEmpty(model.Password)) 
{
    // the user has entered value in its field
}