相关疑难解决方法(0)

对自定义属性执行客户端验证

我创建了一个自定义验证属性:

public class FutureDateAttribute : ValidationAttribute
    {
        public override bool IsValid(object value) 
        {
            if (value == null|| (DateTime)value < DateTime.Now)
                return false;

            return true;
        }

    }
Run Code Online (Sandbox Code Playgroud)

如何使用jquery在客户端使用它?

validation asp.net-mvc jquery razor asp.net-mvc-3

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

MVC不显眼的验证复选框不起作用

我试图在提到执行代码这篇文章.换句话说,我正试图在条款和条件复选框上实现不显眼的验证.如果用户未选中该复选框,则应将输入标记为无效.

这是服务器端Validator代码,我添加了:

/// <summary>
/// Validation attribute that demands that a boolean value must be true.
/// </summary>
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class MustBeTrueAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        return value != null && value is bool && (bool)value;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是模型

[MustBeTrue(ErrorMessage = "You must accept the terms and conditions")]
[DisplayName("Accept terms and conditions")]
public bool AcceptsTerms { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是我的看法:

@Html.EditorFor(x => x.AcceptTermsAndConditions)
@Html.LabelFor(x => x.AcceptTermsAndConditions)
@Html.ValidationMessageFor(x …
Run Code Online (Sandbox Code Playgroud)

unobtrusive-javascript razor unobtrusive-validation asp.net-mvc-3

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

ASP .Net MVC 3不显眼的自定义客户端验证

我已经使用了jquery验证插件几年了,但这是我第一次尝试混合MVC 3不引人注目的验证.

关于客户端的信息分散在整个互联网上,很难找到任何足够深入的东西来解释那些尚未使用它的人.我已经将谷歌烧了一个小时,以获得如何创建自定义客户端验证器的示例.

@Html.TextBoxFor(model => Model.CCPayment.CardNumber, new { @class = "textInput validateCreditCard", maxLength = "20" })

$(document).ready(function () {
      jQuery.validator.unobtrusive.adapters.add('validateCreditCard', {}, function (value, element) {
        alert('foo');
    });
});
Run Code Online (Sandbox Code Playgroud)

如果我在我的视图底部运行上面的代码它绝对没有.我甚至尝试过jquery.validator.addmethod(),但仍然没有.从我的模型验证注释中发出的所有客户端验证都可以正常工作.

<div class="ctrlHolder">
                <label>
                    <em>*</em>
                    Card Number:
                </label>
                @Html.TextBoxFor(model => Model.CCPayment.CardNumber, new { @class = "textInput validateCreditCard", maxLength = "20" })

                <p class="field-validation-valid formHint" data-valmsg-for="CCPayment.CardNumber"></p>
             </div>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-3

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

了解$ .validator.unobtrusive.adapters.addBool()方法

我想了解一些事情.

来自这篇博文http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html

桥接HTML和jQuery验证:适配器

编写客户端验证器涉及两个步骤:为jQuery Validate编写验证器,并编写从HTML属性获取参数值的适配器并将其转换为jQuery Validate元数据.前一个主题不在本博文的范围内(因为它实际上不是MVC特定的).

jQuery.validator.unobtrusive.adapters上有一个适配器集合.挂起适配器集合的是适配器注册方法(add)和三个帮助程序,可用于注册非常常见的适配器类型(addBool,addSingleVal和addMinMax).

请注意,它说了两个步骤.

但是如果你看看这篇文章MVC3:通过jQuery验证需要make复选框吗?你需要第二步("编写适配器")才能使验证工作 - 通过添加以下代码行:

$.validator.unobtrusive.adapters.addBool("mandatory", "required");
Run Code Online (Sandbox Code Playgroud)

我在一个新的MVC 4 Internet App中测试了代码并且它工作正常,这是超简单的样本.

查看模型

public class SimpleViewModel
{
    [Mandatory(ErrorMessage = "You must agree to the Terms to register.")]
    [Display(Name = "Terms Accepted")]
    public bool IsTermsAccepted { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

验证属性

public class MandatoryAttribute : ValidationAttribute, IClientValidatable
{
    public override bool IsValid(object value)
    {
        return (!(value is bool) || (bool)value);
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        ModelClientValidationRule rule …
Run Code Online (Sandbox Code Playgroud)

jquery custom-attributes jquery-validate unobtrusive-validation asp.net-mvc-4

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

您如何验证ASP.Net MVC 2中的复选框?

使用MVC2,我有一个简单的ViewModel,它包含一个bool字段,在视图上呈现为一个复选框.我想验证用户是否选中了该框.我的ViewModel上的[Required]属性似乎不起作用.我相信这是因为未经检查的复选框表单字段在POST期间实际上并未传回,因此验证不会在其上运行.

有没有一种标准的方法来处理MVC2中的复选框"必需"验证?或者我必须为它编写自定义验证器吗?我怀疑自定义验证器不会因上述原因而被执行.我在控制器中明确地检查了它吗?这看起来很乱......

任何指导将不胜感激.

斯科特

编辑清晰度:正如下面的评论所指出的,这是一个"同意我们的条款"类型的复选框,因此"未选中"是一个有效的答案,所以我真的在寻找"已检查"验证.

asp.net asp.net-mvc-2

8
推荐指数
3
解决办法
8744
查看次数

单选按钮上的不引人注目的验证被忽略,而它仅适用于相同表单 html 的文本字段

我正在测试具有不引人注目的验证的表单,其后面没有运行 MVC 控制器,并且 html 是手写的,仅用于测试(以找出它为什么不起作用)而不用于生产。

当表单提交时,单选按钮不会发生任何事情(没有错误消息,例如不会进行任何验证),而同一表单中的文本字段则可以很好地给出验证错误。

我已经扔掉了我能想到的任何东西,示例只需要验证器单选按钮和错误消息范围,仅此而已,但它仍然不起作用。

我一定在这里遗漏了一些明显的东西,当有人指出我的错误时,我可能会觉得自己像个白痴,但我仍然不能在这上面花更多的时间。

<form>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.min.js"></script>
  <script src="https://ajax.aspnetcdn.com/ajax/mvc/5.0/jquery.validate.unobtrusive.min.js"></script>
  <div class="quote-form__question fl--title">
    <div class="split-input--left">
      <input class="tooltip form-control input " data-val="true" data-val-length="Please enter a firstname with no more than 20 characters" data-val-length-max="20" data-val-regex="Please enter First name with letters only" data-val-regex-pattern="^ *?[a-zA-Z]+[ a-zA-Z-_']*$"
      data-val-required="Please enter your first name" id="CustomerFirstname" maxlength="20" name="CustomerFirstname" placeholder="Name" tabindex="" type="text" value="">
      <div class="field-validation-error-container">
        <span class="field-validation-valid field-validation-error" data-valmsg-for="CustomerFirstname" data-valmsg-replace="true"></span>
      </div>
    </div>
  </div>
  <div class="label-row-full-width">
    <label for="q1-1" class="label--un-checked">
      <span>Mr</span>
      <input type="radio" class="js-check-style js-toggle-question js-show-button" …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery unobtrusive-javascript unobtrusive-validation

3
推荐指数
1
解决办法
3653
查看次数