FluentValidation.NET相当于[Display(Name)]

时间:2016-12-27 20:29:14

标签: c# asp.net-mvc asp.net-core .net-core fluentvalidation

FluentValidation.NET之前,我可以像这样给出自定义标签:

[Display(Name="Blah")]
public string BlahBlahBlah { get; set; }

我可以用以下几种方式消费:

@Html.LabelFor(m => m.BlahBlahBlah)
@Html.DisplayNameFor(m => m.BlahBlahBlah)

<label asp-for="BlahBlahBlah"></label>

现在我想从模型中删除所有数据注释,然后转到流畅的验证。在我的验证器中,我有这个:

RuleFor(o => o.BlahBlahBlah)
    .NotEmpty()
    .WithName("Blah");

但这不起作用。为什么呢?

1 个答案:

答案 0 :(得分:1)

FluentValidation中的

WithName方法仅用于调整验证错误消息,如果您要将C#属性名称替换为更加用户友好(有关详细信息,请参阅 Overriding the Default Property Name)。

答案是 - 您通常不能将Display替换为WithName(),仅用于验证错误消息。