Ibr*_*ikh 6 validation asp.net-mvc data-annotations
我正在创建 asp.net mvc 应用程序,其中将错误消息存储在数据库中,现在我想在用户单击提交时使用必需的字段注释而不是自定义 js 验证,我的模型如下所示,
[Required(ErrorMessage = "static error message")]
public string AttributeValue { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想添加动态错误消息而不是 -> (静态错误消息)
有没有办法从控制器添加动态错误消息。
我需要动态设置正则表达式表达式,而不是像 @Golda 在评论中建议的那样创建自己的验证器,我作弊并只是使用模型上的属性设置 data-val 错误,这是所有必需的属性在任何地方执行的操作TagHelper 的帮助。
像往常一样构建模型并添加附加属性来保存错误消息
[Required(ErrorMessage = "static error message")] // Leave this here for server side
public string AttributeValue { get; set; }
public string AttributeValueRequiredErrorMessage { get; set; }
Run Code Online (Sandbox Code Playgroud)
在控制器中确保设置此属性
public async Task<IActionResult> SomeAction()
{
.... // other logic
var attributeValueRequiredErrorMessage = callTheDb();
var model = new Model()
{
AttributeValueRequiredErrorMessage = attributeValueRequiredErrorMessage
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
然后在你看来只需这样做
<input asp-for="AttributeValue " data-val-required="@Model.AttributeValueRequiredErrorMessage " />
Run Code Online (Sandbox Code Playgroud)
这将有助于快速获胜,但如果您在多个地方这样做,我可能会考虑替代方案。
如果您不介意点击服务器端,如果您在 dotnet core 中,您也可以实现 [Remote] 属性,请参阅文档:https: //learn.microsoft.com/en-us/aspnet/core/mvc/模型/验证?视图=aspnetcore-3.0#remote-attribute
| 归档时间: |
|
| 查看次数: |
3144 次 |
| 最近记录: |