我正在创建asp.net mvc应用程序,将错误消息存储在数据库中,现在我想在用户单击提交时使用必需的字段批注而不是自定义js验证,我的模型如下所示,
[Required(ErrorMessage = "static error message")]
public string AttributeValue { get; set; }
我想添加动态错误消息而不是->(静态错误消息)
是否有从控制器添加动态错误消息的方法。
我需要动态设置一个正则表达式,而不是像注释中的@Golda那样创建我自己的验证器,我作弊,只是使用模型上的属性设置数据值错误,这是所有必需的属性借助TagHelper在任何地方。
照常构建模型并添加其他属性来保存错误消息
[Required(ErrorMessage = "static error message")] // Leave this here for server side
public string AttributeValue { get; set; }
public string AttributeValueRequiredErrorMessage { get; set; }
在控制器中,请确保您设置了此属性
public async Task<IActionResult> SomeAction() { .... // other logic var attributeValueRequiredErrorMessage = callTheDb(); var model = new Model() { AttributeValueRequiredErrorMessage = attributeValueRequiredErrorMessage } return View(model); }
然后您认为只需执行此操作
<input asp-for="AttributeValue " data-val-required="@Model.AttributeValueRequiredErrorMessage " />
这可以快速获胜,但是如果您在多个地方这样做,我可能会考虑一种替代方法。