gpt4 book ai didi

asp.net-mvc-3 - 模型验证的自定义范围属性不会生成 jQuery 验证属性

转载 作者:行者123 更新时间:2023-12-02 20:45:52 26 4
gpt4 key购买 nike

在我的项目中,有几个实例,用户需要提供小数形式的金额(以英镑和便士为单位),并且它必须在 Int32 范围内,以便可以为数据库进行转换。我认为可以做到这一点:

/// <summary>
/// Range attribute to ensure that entered value can be converted to an int32
/// </summary>
public class PoundsAndPenceAttribute : RangeAttribute
{
public PoundsAndPenceAttribute(double minimum = (double)int.MinValue / 100, double maximum = (double)int.MaxValue / 100)
: base(minimum, maximum)
{
}
}

不幸的是,它不会生成客户端 JavaScript data-val range 属性,尽管它确实在服务器端对其进行了验证。有更好的方法来做到这一点还是我必须编写一个自定义验证器?

最佳答案

尝试实现 IClientValidatable 接口(interface):

public class PoundsAndPenceeAttribute : RangeAttribute, IClientValidatable
{
public LocalizeRange(double minimum = (double)int.MinValue / 100, double maximum = (double)int.MaxValue / 100)
: base(minimum, maximum)
{
}

public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ErrorMessage = ErrorMessage,
ValidationType = "range"
};

rule.ValidationParameters.Add("min", Minimum);
rule.ValidationParameters.Add("max", Maximum);

yield return rule;
}
}

它应该可以完成这项工作。

关于asp.net-mvc-3 - 模型验证的自定义范围属性不会生成 jQuery 验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com