【发布时间】:2014-09-25 19:08:02
【问题描述】:
我的模型中有这个属性:
[Required]
[StringLength(40,ErrorMessage = "First Name must not be more than 40 characters.")]
public string FirstName { get; set; }
和我的视图代码:
@Html.ValidationSummary()
@Html.TextBoxFor(m => m.FirstName)
如果用户没有为该字段输入值,我希望突出显示文本框,但不希望显示错误消息。我需要仍然显示其他验证的错误消息。
如果我保留代码原样,则会显示默认错误消息
FirstName 字段是必需的。
如果我将 required 属性更改为 [Required(ErrorMessage = null)] 我会收到一个错误:
必须设置 ErrorMessageString 或 ErrorMessageResourceName,但 不是两者都有。
如何在不显示错误消息的情况下突出显示文本框,同时仍然允许其他验证的错误消息?
【问题讨论】:
-
如果您想同时保留 [必需] 和 [您的亮点内容],我想有两种方法可以实现。首先,是创建一个新属性(自定义属性)并将其添加到字段中。二是使用Jquery,简单快捷。此外,只需一两行代码即可处理所有字段。
-
为什么不直接做错误信息和空字符串?
-
我也是这么想的。你得到的错误是因为
Required不接受null这些参数,但它会接受一个空字符串,因为它仍然是一个字符串。至少应该有效地显示错误消息已被删除,因为它将显示空字符串。 -
如果你设置 ErrorMessage = "" 你会得到同样的错误
标签: c# asp.net-mvc validation