c#DataAnnotation和jquery-如何让它们进行通信(相互链接)

c#DataAnnotation和jquery-如何让它们进行通信(相互链接),c#,jquery,asp.net-mvc-3,C#,Jquery,Asp.net Mvc 3,如何让dataanotation与自定义jquery脚本对话 public class ProductViewModel { [Required] public string Name { get; set; } } @using (Html.BeginForm) { @Html.EditorFor(model => model.Name) @Html.Val

如何让dataanotation与自定义jquery脚本对话

 public class ProductViewModel
        {
            [Required]
            public string Name { get; set; }

        }
    @using (Html.BeginForm)
    {
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model=>Model.Name)
       <input type="submit" value="Submit" id="NewVarianceSubmitButton" />
    }

    Now jquery
    $(":submit").click(function () {
     if dataannotations are all valid  above then ...BUT HOW!

        $(this).clone().insertAfter($(this)).attr("disabled", "true");
        $(this).hide();
公共类ProductViewModel
{
[必需]
公共字符串名称{get;set;}
}
@使用(Html.BeginForm)
{
@EditorFor(model=>model.Name)
@Html.ValidationMessageFor(model=>model.Name)
}
现在是jquery
$(“:提交”)。单击(函数(){
如果上面的数据注解都是有效的,那么…但是如何呢!
$(this).clone().insertAfter($(this)).attr(“已禁用”、“为真”);
$(this.hide();
您需要启用

您不会编写代码来启用或禁用。这一切都是通过启用客户端校准来完成的。您需要启用


您不会编写代码来启用或禁用。这一切都是通过启用客户端校准来完成的。

我同意Aliostad,您只需要启用客户端验证。如果您需要编写自定义属性,我写了一篇博文,链接到我读到的
ContainsAttribute
的完整项目示例你的文章和我有点困惑。你建议我创建一个自定义属性,把它放在字符串名称上,让mvc帮我弄清楚?你想做什么不管用?当你启用客户端验证时,mvc会帮你“弄清楚”。我的帖子只是从自定义属性的角度向你展示了这是如何做到的。DataAnnotations命名空间提供了足够多的属性,您可能不需要自定义属性。您确实需要在页面中的jquery脚本之后包含
jquery.validate
和/或不显眼的文件,以便客户端验证工作。我同意Aliostad的说法,您只需要启用客户端验证。如果需要编写自定义属性,我写了一篇博客文章,链接到一个
ContainsAttribute
的完整项目示例。我读了你的文章,有点困惑。你建议我创建一个自定义属性,将它放在字符串名称上,让mvc帮我弄清楚?你想做什么,但不起作用?当你启用客户端验证时,mvc会做什么我的帖子只是从自定义属性的角度向您展示了如何做到这一点。DataAnnotations命名空间提供了足够多的属性,您可能不需要自定义属性。您确实需要在页面中包含
jquery.validate
和/或jquery脚本之后的不引人注目的文件客户端验证开始工作。