【发布时间】:2018-05-25 13:30:03
【问题描述】:
我正在使用 ASP.NET Core MVC 项目,在该项目中,我们希望将自定义消息设置为具有字段名称的必填字段,而不是框架提供的通用消息。
为此,我创建了一个自定义类,如下所示:
public class GenericRequired : ValidationAttribute
{
public GenericRequired() : base(() => "{0} is required")
{
}
public override bool IsValid(object value)
{
if (value == null)
{
return false;
}
string str = value as string;
if (str != null)
{
return (str.Trim().Length != 0);
}
return true;
}
}
并在模型中使用该类。
[GenericRequired]
[DisplayName("Title")]
public string Name { get; set; }
在查看页面上:
<span asp-validation-for="Name" class="text-danger"></span>
但消息未显示或验证不起作用。有没有其他方法可以让它工作?
【问题讨论】:
-
只使用
[Required(ErrorMessage = "{0} is required")]有什么问题? -
谢谢! @KirkLarkin 我不想每次都写是必需的,更改文本需要时间。
-
是的,我想你可能会回来。你的代码对我有用,所以它一定是你缺少的东西。但无论如何,我建议您创建
RequiredAttribute的子类,并且不要重新发明IsValid功能。 -
@KirkLarkin:你和 Core 核对过吗?有用?好的,我试试
RequiredAttribute -
这里去:RazorPagesDemo客户模型
标签: c# validation asp.net-core asp.net-core-mvc