验证必须使用xval必须为true的布尔
-
22-09-2019 - |
题
我有一个业务要求,以在允许提交表格之前在HTML表单上执行一个复选框。
如果没有使用适当的消息检查此框,我可以将用户返回表单,但要同时从XVAL验证中返回所有信息。
我在其他地方找不到任何信息,因此可以使用xval验证bool tum(或false),类似于使用 [Range(min, max)]
dataannotation或我必须手动 .AddModelError(..)
包含此信息以将错误添加到ViewModel中?
解决方案
您是否尝试过创建自己的验证方法?我为这种情况创建了一个truetypeattribute。
using System;
using System.ComponentModel.DataAnnotations;
namespace KahunaCentralMVC.Data.ModelValidation.CustomValidationAttributes
{
public class TrueTypeAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null) return false;
bool newVal;
try
{
newVal = Convert.ToBoolean(value);
if (newVal)
return true;
else
return false;
}
catch (InvalidCastException)
{
return false;
}
}
}
}
[MetadataType(typeof(FooMetadata))]
public partial class Foo
{
public class FooMetadata
{
[Required(ErrorMessage = " [Required] ")]
[TrueTypeAttribute(ErrorMessage = " [Required] ")]
public bool TruVal { get; set; }
}
}
其他提示
XVAL必须在复选框上处理所需的字段数据通道,如必须检查。最近,我不得不解决这种情况,因为我试图代表一个不可用的布尔值,而复选框可能是真实的或错误的(只是无效)。但是就您而言,这很好。但是,它提供了必需的字段验证消息,您可能正在寻找“必须接受这些术语”类型消息。
使用XVAL远程规则验证并从AJAX资源验证可能是最容易的。
不隶属于 StackOverflow