Asp.net mvc 4 剑道ui-如何将验证与mvc模型属性联系起来

Asp.net mvc 4 剑道ui-如何将验证与mvc模型属性联系起来,asp.net-mvc-4,telerik,kendo-ui,kendo-asp.net-mvc,Asp.net Mvc 4,Telerik,Kendo Ui,Kendo Asp.net Mvc,通过阅读本文中的帖子,并且由于一些奇怪的原因无法将问题发布到这里:(我将在这里提问,希望得到一个解决方案 我写的是不是说我必须像下面那样进行验证 我将html5属性(data required msg/validationMessage)添加到文本框和所需属性 我为无效消息创建了一个范围,并将其绑定到具有“data for”属性的字段。然后,消息“Please enter name”应显示在此范围内 问题 这是处理这个问题的唯一方法吗 我没有办法显示正确的错误消息(“我想显示的错误消息”),就像

通过阅读本文中的帖子,并且由于一些奇怪的原因无法将问题发布到这里:(我将在这里提问,希望得到一个解决方案

我写的是不是说我必须像下面那样进行验证

  • 我将html5属性(data required msg/validationMessage)添加到文本框和所需属性
  • 我为无效消息创建了一个范围,并将其绑定到具有“data for”属性的字段。然后,消息“Please enter name”应显示在此范围内
  • 问题

  • 这是处理这个问题的唯一方法吗
  • 我没有办法显示正确的错误消息(“我想显示的错误消息”),就像在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>
    
    公共类AViewModel
    {
    [必需(ErrorMessage=“我要显示的错误消息”)]
    公共字符串名称{get;set;}
    }
    @Html.TextBoxFor(m=>m.Name,新的{placeholder=“例如,John Smith”,数据\u required\u msg=“PleaseEnter Name”,required=“required”})
    
    干杯,
    J

    为了能够做到你所说的,你需要在ASP.NET MVC中使用剑道UI。这样你就可以像以前一样继续使用DataAnnotations属性和Html.ValidationMessageFor()助手。你所需要做的就是在你的表单后(或在document.ready()上)调用
    $(“[你的表单选择器]).kendoValidator()
    ).

    这在telerik论坛上讨论: