gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 可配置验证

转载 作者:行者123 更新时间:2023-12-05 00:36:15 24 4
gpt4 key购买 nike

我想使用来自可配置源的 asp.net mvc 客户端/服务器验证。

有些像我可以放置信息的 .config 文件:
类型、成员、验证类型

<validations>
<add type="Customer" member="Name" validator="Required" />
<add type="Customer" member="Age" validator="Range" mimimum="18" maximum="100" />
</validations>

有了这个计划,就可以启用/禁用验证。

任何的想法?

最佳答案

如果需要,请考虑一些更高级的验证框架,例如 Enterprise Library Validation Block。

如果你想自己做,我建议像这样创建从 ValidationAttribute 继承的自定义属性(部分是伪代码,我相信你明白了)

public class ConfigurableValidationAttribute: ValidationAttribute
{
public override bool IsValid(object value)
{
string objectType = value.GetType().FullName;
string objectName = GetMyObjectName(value); // interface? reflection?
var validationRules = GetValidationRulesFor(objectType, name); // from your configuration

foreach (var rule in validationRules)
{
ValidationAttribute attr = null;
switch (rule.ValidatorName)
{
case "Required": attr = new RequiredAttribute();
case "StringLength": attr = // you get the idea
}

if (!attr.IsValid(value)) return false;
}

return true;
}
}

关于asp.net-mvc - ASP.NET MVC 可配置验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393924/

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