如何在JScript中将bool从C#映射到布尔变量?自动转换将布尔值true转换为字符串“ True”

时间:2019-12-04 15:23:28

标签: javascript c# asp.net-mvc unobtrusive-validation

我正在使用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类型的参数。

1 个答案:

答案 0 :(得分:0)

使用(mustbeeven ==“ True”)代替(mustbeeven == true)