x.FirstName) @Html.TextBoxFor(model => model.FirstName, new { Name = "1.-6ren">
gpt4 book ai didi

c# - Razor @Html.ValidationMessageFor() 不显示 "validation error message"

转载 作者:太空狗 更新时间:2023-10-29 22:09:10 28 4
gpt4 key购买 nike

@Html.RequiredLabelFor(x => x.FirstName)
@Html.TextBoxFor(model => model.FirstName, new { Name = "1.first_name", tabindex = "1" })
@Html.ValidationMessageFor(model => model.FirstName)

为什么在将第二个参数传递给@Html.TextBoxFor 时正在验证字段但没有出现“验证消息”?

@Html.RequiredLabelFor(x => x.FirstName)
@Html.TextBoxFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)

当使用仅接受一个参数(lambda 表达式)的重载时,“验证消息”正确显示。

据我所知,实际属性(property)没有得到认可?

支持属性:

[StringLength(100, ErrorMessage = "Max length 100 characters")]
[Required(ErrorMessage = "This field is required")]
[Display(Name = "First name")]
public string FirstName { get; set; }

最佳答案

不显眼的验证库使用 name 属性标识“要显示验证的事物”。并不是指定额外的属性会阻止它工作,而是您更改了 name 属性并且没有在验证助手中反射(reflect)新名称。

您可以停止更改文本框帮助器中的名称属性(如果您使用默认模型绑定(bind)器返回 View 则需要这样做),或者您可以使用

@Html.ValidationMessage("1.first_name")

上述方法不是一个好主意除非您正在使用 JS/JQuery 来验证和提交您的表单数据(通过 AJAX ),因为斯蒂芬在评论这个答案时给出的原因。

关于c# - Razor @Html.ValidationMessageFor() 不显示 "validation error message",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096504/

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