gpt4 book ai didi

c# - ValidationMessage 不会更改文本编辑器边框的颜色

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:35 26 4
gpt4 key购买 nike

我最近遇到了一个小问题。创建新学生时,我必须测试 StudentNo 是否已被使用,它必须是唯一的。测试在 Controller 中。当 StudentNo 已经在数据库中时,我添加了一个自定义错误:

Student studentToCheck = dbContext.Students
.FirstOrDefault(r => r.StudentNo == student.StudentNo);
if (studentToCheck != null)
{
ModelState.AddModelError("StudentNumberError",
"This Student No. is already in use");
}

虽然它工作正常,但它没有设置 TextBox 的边框,即使我设置了 CSS 样式:

.field-validation-error
{
color: Red;
}
.input-validation-error
{
border-color: Red;
}

我已经检查了结果网站的 HTML,看起来我必须添加 input-validation-error 类,但我不知道如何添加。

部分 View :

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


和类定义的一部分:

[Required, Display(Name = "Student No.")]
[RegularExpression("^(ST[0-9]{4})$",
ErrorMessage = "Student No. must be of the form: ST0000")]
public string StudentNo { get; set; }



编辑:

我尝试手动添加类:

@Html.ValidationMessage("StudentNumberError", new { {"class", "input-validation-error"} } )

@Html.ValidationMessage("StudentNumberError", new Dictionary<string, object>(){ {"class", "input-validation-error"} } )

但这些都不起作用:/

最佳答案

您正在为 RadarNumberError 添加错误,但如果您希望突出显示该字段,则应为 StudentNo 添加错误:

ModelState.AddModelError("StudentNo",
"This Student No. is already in use");

然后在您的 View 中,您只需要呈现 StudentNo

的错误
<div class="editor-field">
@Html.EditorFor(model => model.StudentNo)
@Html.ValidationMessageFor(model => model.StudentNo)
</div>

关于c# - ValidationMessage 不会更改文本编辑器边框的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036154/

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