在模型中使用装饰器时显示友好错误消息

时间:2017-06-25 08:24:20

标签: validation asp.net-core

ASP.NET Core新手。

我有一个观点:

<form asp-action="LogIn">
    <div class="form-horizontal">
        <hr />
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="EmailAddress" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="EmailAddress" class="form-control" style="min-width:350px" />
                <span asp-validation-for="EmailAddress" class="text-danger"></span>
            </div>
        </div>
        <div class="form-group">
            <label asp-for="Password" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="Password" class="form-control" style="min-width:350px" />
                <span asp-validation-for="Password" class="text-danger"></span>
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Enter" class="btn btn-default" />
            </div>
        </div>
    </div>
</form>

我有这个模型:

public class Subscription
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long SubscriptionId { get; set; }

    [Display(Name = "Email Address")]
    [Required]
    [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")]        
    public string EmailAddress { get; set; }

    [NotMapped]
    public string Password { get; set; }        
}

因此,当用户键入未通过正则表达式验证的电子邮件地址时,我收到错误消息:

enter image description here

我如何克服这个&#39;默认&#39;要说的错误消息(例如):

电子邮件地址无效

1 个答案:

答案 0 :(得分:1)

您需要将ErrorMessage属性添加到RegularExpression属性中,如下所示 -

[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Your friendly message goes here")]