c# - FluentValidation.NET 等同于 [Display(Name)]

标签 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");

但这行不通。为什么?

最佳答案

FluentValidation 中的

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

所以答案是——一般情况下,您不能将 Display 替换为 WithName(),仅用于验证错误消息。

关于c# - FluentValidation.NET 等同于 [Display(Name)],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41351817/

相关文章:

c# - WCF 服务为每个新请求创建一个新线程

c# - MVC4 表单验证 - 自定义 html 消息 howto?

c# - 视频中的 XAML 选项质量

asp.net-mvc - 使用 Entity Framework 仅更新已修改字段的最佳方法

c# - 如何下载 2 个或更多文件

c# - DLL 中的 HOOK C# 方法

asp.net-mvc - mvc查看表行数计数器

asp.net-mvc - 当用户空闲时间为 5 分钟时,如何在 MVC4 中自动注销?

node.js - Visual Studio 2015 Update 2 中的 NPM 错误,无法还原包

api - .net core - 如何在 AuthorizationHandler 上返回 403?