我正在使用VS2019在ASP.Net MVC 5中实现IClientValidatable。以下代码部分创建了验证规则,行undefined
创建了参数类型,该参数必须为boolean类型,但作为字符串传递。
rule.ValidationParameters.Add("mustbeeven", this.mEven);
以及在客户端验证规则的相应javascript代码。代码行public partial class EvenOrOddNumberAttribute : IClientValidatable
{
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule();
rule.ErrorMessage = this.FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationParameters.Add("mustbeeven", this.mEven); //mEven is a field of type bool
rule.ValidationType = "evenoroddnumber";
yield return rule;
}
}
之所以为false,是因为在前一个C#代码if (mustbeeven == true)
(布尔值)中,它的值为“ True”(字符串),而在this.mEven == true
时,它的值为“ False”:
this.mEven == false
关于主题here的问题也有类似的老问题,以某种方式解决了该问题,但我正在寻找一种更好的解决方案,如果可能的话,在Javasript端具有boolean类型的参数。
答案 0 :(得分:0)
使用(mustbeeven ==“ True”)代替(mustbeeven == true)