gpt4 book ai didi

asp.net-mvc - 在 asp.net mvc 中设置来自 Controller 的动态数据注释错误消息

转载 作者:行者123 更新时间:2023-12-04 01:43:56 25 4
gpt4 key购买 nike

我正在创建 asp.net mvc 应用程序,其中我将错误消息存储在我的数据库中,现在我想在用户单击提交时使用必需的字段注释而不是自定义 js 验证,我的模型如下所示,

[Required(ErrorMessage = "static error message")]
public string AttributeValue { get; set; }

我想添加动态错误消息而不是 ->(静态错误消息)

有没有办法从 Controller 添加动态错误消息。

最佳答案

我需要动态设置正则表达式,而不是像@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; }

在 Controller 中确保你设置了这个属性
 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 " />

这将有助于快速获胜,但如果您在多个地方执行此操作,我可能会考虑替代方案。

如果您不介意使用命中服务器端,如果您在 dotnet 核心中,您也可以实现 [Remote] 属性,请参阅文档: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-3.0#remote-attribute

关于asp.net-mvc - 在 asp.net mvc 中设置来自 Controller 的动态数据注释错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56125742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com