2

通过阅读该线程中的帖子 -由于某些奇怪的原因而无法在此处发布问题:(我会在这里问它以希望获得解决方案

我是不是在说我必须像下面这样进行验证..

  1. 我将 html5 属性(data-required-msg/validationMessage)添加到文本框和 required 属性。
  2. 我为无效的 msg 创建了一个跨度,并将其绑定到具有“data-for”属性的字段。然后,“请输入姓名”消息应出现在此跨度中。

问题

  1. 这是解决这个问题的唯一方法吗?
  2. 有没有办法让我显示正确的错误消息(“我想显示的错误消息”),以任何方式与 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

4

1 回答 1

3

为了能够执行您所说的操作,您需要使用 Kendo UI for ASP.NET MVC。有了它,您可以像以前一样继续使用您的 DataAnnotations 属性和 Html.ValidationMessageFor() 助手。您需要做的就是$('[your_form_selector]').kendoValidator()在您的表单之后(或在 document.ready() 上)调用。

于 2013-05-15T17:50:08.293 回答