通过阅读该线程中的帖子 -由于某些奇怪的原因而无法在此处发布问题:(我会在这里问它以希望获得解决方案
我是不是在说我必须像下面这样进行验证..
- 我将 html5 属性(data-required-msg/validationMessage)添加到文本框和 required 属性。
- 我为无效的 msg 创建了一个跨度,并将其绑定到具有“data-for”属性的字段。然后,“请输入姓名”消息应出现在此跨度中。
问题
- 这是解决这个问题的唯一方法吗?
- 有没有办法让我显示正确的错误消息(“我想显示的错误消息”),以任何方式与 ViewModel 上的 mvc 属性相关联。正如另一位海报所说,这是一个更具可扩展性/可重用性和更好的设计。
使用 data-for="Name" 是非常脆弱的,因为模型字段名称的更改不会反映在那里,并且可能会被遗忘,从而交付有缺陷的软件。您正在失去类似的类型安全性
@Html.ValidationMessageFor(m=> m.Name)
代码
public class AViewModel
{
[Required(ErrorMessage="Error Message I want to show")]
public string Name { get; set; }
}
<div class="validation-wrapper">
<div class="input-wrapper">
@Html.TextBoxFor(m => m.Name, new { placeholder = "eg. John Smith", data_required_msg="PleaseEnter name", required="required" } )
</div>
<span class="k-invalid-msg" data-for="Name"></span>
</div>
干杯,J