gpt4 book ai didi

asp.net-mvc - 向 asp mvc 表单添加与字段无关的错误

转载 作者:行者123 更新时间:2023-12-03 07:48:11 26 4
gpt4 key购买 nike

我在处理 ASP MVC 错误时遇到了一些问题。

在用户尝试连接到设备的表单上。如果用户输入了一个无效的设备名称,那么告诉用户该名称是无效的非常简单。

我正在实现 IEnumerable<RuleViolation> GetRulesViolations()在我所有的数据类上。 RuleViolation类有两个字段:PropertyNameErrorMessage如果我在提交时遇到错误,我只需调用 GetRulesViolations 方法并在 ModelState 上设置错误:

catch {
foreach (var issue in device.GetRulesViolations()) {
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View();
}

并且在一些背景 asp mvc 魔术下,错误出现在 model.Name 的 ValidationMessage 占位符中的 View 上:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>

<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>

<p>
<input type="submit" value="Connect" />
</p>
</fieldset>
}

现在的问题:

如果我得到的错误类似于“无法连接到设备”,这不是与 Name 相关的问题。 field 。这是一条应该出现在表单上方的消息,因为它与整个表单相关。

有没有一种直接的方法来设置这个像 ModelState.AddError("error message") 而不告诉 key 所以它会应用于整个表单或者我应该创建一个 Error在 Data 类上隐藏属性并将该属性的验证消息放置在表单上方?

最佳答案

是的,空字段名称,如下所示:

ModelState.AddModelError("", issue.ErrorMessage);

关于asp.net-mvc - 向 asp mvc 表单添加与字段无关的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820685/

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