我的mvc 4应用程序中有razor页面。现在我的页面中有一个简单的文本框如下:
@Html.TextBox("Email")
或
<input id="Email" name="Email" type="text" />
如何为这个字段做一些客户端验证,你知道像asp.net web forms验证控件。我想让它成为必需的并为它写一个正则表达式。
答案 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)
您通常使用RequiredAttribute
和RegexAttribute
来装饰您的模型属性。
答案 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.");
希望这有帮助