为了验证的目的,我如何将MVC 3表单上的多个文本框视为一个文本框?
这是一个简单的电话号码字段,其中一个区域代码文本框,一个用于前缀,一个用于最后四个数字.
实际上有两个验证要求:
1)他们都是必需的.2)它们都必须包含整数.
现在,对于单个字段执行此操作很简单,但是如何使用MVC创建ASP.NET CustomValidator的等效项,以便我可以将所有三个字段作为一个整体进行验证?
我在这里问类似的问题,但是在这个问题中我使用了另一个实现,正是这种方式下面的代码显示了我的实现:
模型:
public class Department {
public long Id { get; set; }
[IsDateAfter("Date2", true, ErrorMessage = "O My")]
public DateTime Date1 { get; set; }
public DateTime Date2 { get; set; }
public string Name1 { get; set; }
public string Name2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
自定义验证器:
public sealed class IsDateAfter : ValidationAttribute, IClientValidatable {
private readonly string testedPropertyName;
private readonly bool allowEqualDates;
public IsDateAfter(string testedPropertyName, bool allowEqualDates = false)
{
this.testedPropertyName …
Run Code Online (Sandbox Code Playgroud) javascript asp.net-mvc razor unobtrusive-validation asp.net-mvc-3
如何在同一字段上多次使用相同的自定义验证属性,或者只是为服务器端和客户端验证启用AllowMultiple = true?
我有以下自定义验证属性:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,
AllowMultiple = true, Inherited = true)]
public class RequiredIfAttribute : ValidationAttribute,IClientValidatable
{
public RequiredIfAttribute(string dependentProperties,
string dependentValues = "",
string requiredValue = "val")
{
}
}
Run Code Online (Sandbox Code Playgroud)
在dependentProperties中,我可以指定由逗号分隔的多个依赖属性,在dependentValues中,我可以指定依赖属性验证应该处理哪些值,最后在requiredValue中,我可以指定要验证的字段的期望值.
在我的模型中有两个属性LandMark,PinCode和我想使用验证如下:
public string LandMark { get; set; }
[RequiredIf("LandMark","XYZ","500500")]
[RequiredIf("LandMark", "ABC", "500505")]
public string PinCode { get; set; }
Run Code Online (Sandbox Code Playgroud)
这里的值只是例如,因为似乎我可以多次添加属性并且不会出现任何编译错误,我已经在属性中实现了TypeID,如果我从中删除客户端验证,它在服务器端运行良好.但是当我在属性上实现IClientValidatable时,它给了我一个错误:
"不引人注目的客户端验证规则中的验证类型名称必须是唯一的."
任何帮助我该如何解决?