0

我有下一个问题:

我有一些自定义表格填写一个 - MyCustomDto

public class MyCustomDto
{
    [Required]
    [DataType(Email)]
    public String Email {get;set;}

    [Required]   
    public String Name {get;set;}

    ...
    //ETC
}

我有一个控制器动作,它适用于表单中的整个数据:

public JsonResult WorkWithMyCustomDto(MyCustomDto request)
{
    ....
}

我在 JS 中有一个函数,可以将 Ajax 请求发送到控制器的这个动作:

function PassTheData()
{
   //Some ajax request to the action of controller.
   $.ajax(....);
}

我不想使用提交行为。问题是如何在发送 ajax 请求之前验证表单?应通过 class 的数据注释进行验证MyCustomDto。感谢任何预付款。

4

2 回答 2

1

在您的 JS 函数中,您应该手动验证表单:

function PassTheData()
{
   var validator = $("#myform").validate();

   if(validator.form()){
        // the form is valid
        //Some ajax request to the action of controller.
        $.ajax(....);
    } else{
        // the form is invalid
        //validator.errorList contains an array of objects, where each object has properties "element" and "message".  element is the actual HTML Input.
    }

}

有关 jQuery 验证器插件的完整参考,请查看文档页面: http ://docs.jquery.com/Plugins/Validation

于 2013-05-13T10:15:26.577 回答
1

我认为您应该在 ASP.NET MVC 中使用 Unobtrusive Client Validation。它会根据在视图模型上装饰的数据注释自动生成一些自定义属性,例如 HTML 元素中的 data-。参考链接在这里

于 2013-05-13T10:58:38.240 回答