如何在我的剃刀页面添加自定义验证?

时间:2012-09-29 16:59:19

标签: asp.net-mvc validation razor client-side

我的mvc 4应用程序中有razor页面。现在我的页面中有一个简单的文本框如下:

@Html.TextBox("Email")

<input id="Email" name="Email" type="text" />

如何为这个字段做一些客户端验证,你知道像asp.net web forms验证控件。我想让它成为必需的并为它写一个正则表达式。

3 个答案:

答案 0 :(得分:1)

我习惯这样做:

  • 在模型Person.cs中:

        [StringLength(50, ErrorMessage = "El campo {0} no puede tener mas de 50 caracteres")]
        [Required(ErrorMessage = "El nombre es obligatorio")]
        public string Nombre { get; set; }
    
  • 在Create.cshtml页面中:

        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="Person.Nombre" class="control-label">Nombre / Name:</label>
            <input asp-for="Person.Nombre" class="form-control" />
            <span asp-validation-for="Person.Nombre" class="text-danger"></span>
        </div>
    

答案 1 :(得分:0)

您通常使用RequiredAttributeRegexAttribute来装饰您的模型属性。

答案 2 :(得分:0)

您可能需要查看数据注释。它们为您提供了非常简单直接的方法,可以为每个视图模型中的每个字段定义(不仅仅)验证。

请查看以下链接:

How to: Validate Model Data Using DataAnnotations Attributes

在您的特定情况下,它将是

[Required]
[RegularExpression(@"<your RegEx>", ErrorMessage = "<your message, leave out for default>")]
public string fieldYouValidating { get; set; }

许多优先考虑的其他验证方法是Fluent Validation

RuleFor(x => x.fieldYouValidating)
        .NotEmpty()
        .WithMessage("This is the message.");

希望这有帮助