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

问题描述 投票:1回答:2

我知道我可以通过Bind属性排除或包括对属性的绑定,但是我不确定是否可以通过编程方式做到这一点(无需创建单独的ViewModel)。我想要实现此目的的原因是因为我有一个密码字段,仅当用户在其字段中输入值时才应包括在内。

c# asp.net asp.net-mvc model-binding
2个回答
2
投票

用途:

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

2
投票

将viewModel中的Password属性设置为可选,换句话说,不需要注释。通常,当值为空/ null时,将通过所有其他验证(RequiredAttribute除外)。

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

然后在您的控制器操作测试中,如果Password属性为null或为空,则>

if (!String.IsNullOrEmpty(model.Password)) 
{
    // the user has entered value in its field
}
© www.soinside.com 2019 - 2024. All rights reserved.