相关疑难解决方法(0)

如何在ASP.NET MVC 3中自定义不显眼的验证以匹配我的风格?

MVC 3中的默认验证基于jQuery验证,我通常可以使用以下内容进行自定义:

$.validator.setDefaults({
  submitHandler: function() { alert('submitHandler'); },
  errorPlacement: function(error, element) {
    // do something important here
    alert('errorPlacement');
  },
  errorClass: "error",
  errorElement: "input",
  onkeyup: false,
  onclick: false
})
Run Code Online (Sandbox Code Playgroud)

但是,这似乎在MVC 3中不起作用.具体来说,似乎并没有调用errorPlacement,我也不知道为什么.我将调用submitHandler,但绝不会调用errorPlacement.

如何自定义验证以匹配我的网站风格所需的任何结构/样式?默认值很高,但并不总是适用于所有情况.

asp.net jquery jquery-validate asp.net-mvc-3

32
推荐指数
3
解决办法
2万
查看次数

ASP.net MVC 3 jQuery验证; 禁用Unobtrusive OnKeyUp?

有没有办法禁用某个验证器(信用卡)的jQuery验证,以便它只发生在onblur而不是onkeyup?

基于jQuery Validator文档,我想我可以做这样的事情:

$(function () {
    $("[data-val-creditcard]").validate({
        onkeyup: false
    })
});
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有起作用.

我还尝试在我的验证器上执行以下操作:

public class CreditCardValidator : DataAnnotationsModelValidator<CreditCardAttribute>
{
    string _message;

    public CreditCardValidator(ModelMetadata metadata, ControllerContext context, CreditCardAttribute attribute)
        : base(metadata, context, attribute)
    {
        _message = attribute.ErrorMessage;
    }

    public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
    {
        var rule = new ModelClientValidationRule
        {
            ErrorMessage = _message,
            ValidationType = "creditcard"
        };
        rule.ValidationParameters.Add("onkeyup", false);
        return new[] { rule };
    }
}
Run Code Online (Sandbox Code Playgroud)

它也不起作用,但我只是在正确使用ValidationParameters.

在表单中输入信用卡号并将其随机从无效更改为有效,然后返回无效,这有点烦人.

有任何想法吗?谢谢!

asp.net-mvc jquery jquery-validate asp.net-mvc-3

24
推荐指数
4
解决办法
2万
查看次数

向远程验证属性MVC3添加延迟

我有一个senario,我必须在进行注册页面时检查数据库中是否存在用户名.为此我已经在我的模型中实现了远程属性以进行远程验证

[Remote("CheckUserNameAvaliable", "User", Httpmethod="Post")]
public string Username {get; set;}
Run Code Online (Sandbox Code Playgroud)

我的方法看起来像这样

[HttpPost]
public JsonResult CheckUserNameAvaliable(string UserName)
{
    SessionUser currentUser = this.sessionHelper.GetCurrentUser();
    User user = this.userService.GetByUsername(UserName);
    if (user != null && user.Id != currentUser.Id)
    {
        return Json(false);
    }

    return Json(true);
}
Run Code Online (Sandbox Code Playgroud)

它对我来说很好,但问题是每当我们在用户名Textbox上创建一个密钥时它就会提交这个远程验证,但根据我的要求,我必须在用户名Textbox中输入值后才能激活这个远程验证.为此,我们可以强制添加延迟到远程验证属性?

有谁知道如何在MVC3中添加延迟到远程验证?

jquery unobtrusive-validation asp.net-mvc-3

5
推荐指数
1
解决办法
2547
查看次数

asp.net mvc 3中模糊的远程属性验证

asp.net mvc 3中的远程属性的构建执行验证"onchange".
我想让它验证模糊,有没有办法定制它?或者还有其他的事情可以这样做吗?我确信这是一个非常普遍的需求.

c# asp.net-mvc attributes asp.net-mvc-3

2
推荐指数
1
解决办法
1839
查看次数