gpt4 book ai didi

asp.net-mvc - 如何在 MVC3 中使用带有自定义验证属性的不显眼的 JS 验证?

转载 作者:行者123 更新时间:2023-12-02 00:34:36 25 4
gpt4 key购买 nike

我有一个名为 AsteriskRequiredAttribute 的自定义验证属性,它派生自 Required 属性,它的功能只是在文本框字段缺少值时显示星号 (*)。

MVC3 的不显眼的 JS 验证似乎与 Required 属性一起完美地工作,但与我的自定义属性无关 - 没有任何反应。

怎么了?

最佳答案

http://samipoimala.com/it/2010/11/29/unobtrusive-client-validation-in-asp-net-mvc-3/

事实证明,实现自定义属性确实是一件容易的事。您实现自己的类,该类继承 System.ComponentModel.DataAnnotations.ValidationAttribute 并实现 System.Web.Mvc.IClientValidatable。所以你需要做三件事。

1) 覆盖 public bool IsValid(object value)当在服务器上完成验证时将运行此方法(例如,如果客户端未启用 javascript)。如果您不需要客户端验证,这就是您需要做的所有事情。

2) 创建一个继承自 ModelClientValidationRule 的类。这通常非常简单。以下是如何在客户端启用电子邮件验证的示例:

public class ModelClientValidationEmailRule : ModelClientValidationRule
{
public ModelClientValidationEmailRule(string errorMessage)
{
base.ErrorMessage = errorMessage;
base.ValidationType = "email";
}
}

3) 实现 public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context)

这通常也很容易实现,这里是电子邮件验证的例子:

public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return new ModelClientValidationEmailRule(FormatErrorMessage(metadata.GetDisplayName()));
}

这就是您编写自己的属性以使用 jQuery Validate 插件上现成的验证规则启用验证所需要做的全部工作。

关于asp.net-mvc - 如何在 MVC3 中使用带有自定义验证属性的不显眼的 JS 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5175043/

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