Sco*_*eld 8 asp.net asp.net-mvc-2
使用MVC2,我有一个简单的ViewModel,它包含一个bool字段,在视图上呈现为一个复选框.我想验证用户是否选中了该框.我的ViewModel上的[Required]属性似乎不起作用.我相信这是因为未经检查的复选框表单字段在POST期间实际上并未传回,因此验证不会在其上运行.
有没有一种标准的方法来处理MVC2中的复选框"必需"验证?或者我必须为它编写自定义验证器吗?我怀疑自定义验证器不会因上述原因而被执行.我在控制器中明确地检查了它吗?这看起来很乱......
任何指导将不胜感激.
斯科特
编辑清晰度:正如下面的评论所指出的,这是一个"同意我们的条款"类型的复选框,因此"未选中"是一个有效的答案,所以我真的在寻找"已检查"验证.
SQu*_*eek 14
自定义验证器是要走的路.我将发布我用来验证用户接受条款的代码...
public class BooleanRequiredToBeTrueAttribute : RequiredAttribute
{
public override bool IsValid(object value)
{
return value != null && (bool)value;
}
}
Run Code Online (Sandbox Code Playgroud)
Jok*_*kin 12
我通常使用:
[RegularExpression("true")]
Run Code Online (Sandbox Code Playgroud)
如果您不想创建自己的自定义验证器,并且仍希望使用模型中的现有属性,则可以使用:
[Range(typeof(bool), "true", "true", ErrorMessage="You must accept the terms and conditions.")]
Run Code Online (Sandbox Code Playgroud)
这可确保布尔值的范围介于true和true之间.但是,虽然这种方法可行,但我仍然希望在这种情况下使用自定义验证器.我只是认为我会提到这个作为替代选择.
| 归档时间: |
|
| 查看次数: |
8744 次 |
| 最近记录: |