代码之家  ›  专栏  ›  技术社区  ›  Gabe Sumner

如何在AJAX帖子中使用服务器端验证?

  •  1
  • Gabe Sumner  · 技术社区  · 15 年前

    斯科特·古思里在他的博客文章中描述了如何 enable validation using DataAnnotations .

    例子:

    public class Product
    {
        [Display(Name="Product Number")]
        [Range(0, 5000)]
        public int ProductID { get; set; }
    
        [Display(Name="Name")]
        [Required]
        public string ProductName { get; set; }
    
        [Display(Name="Price")]
        [DataType(DataType.Currency)]
        public double ListPrice { get; set; }
    }
    

    在对这篇博文的评论中@Ke写道:

    服务器端验证如何使用ajax post?i、 如何将验证错误发送回客户端?

    斯科特回答说:

    是的,你可以处理。我相信菲尔·哈克(Phil Haack)很快就会把它写进他的博客。

    但我找不到这篇博文。如何将服务器端验证与AJAX帖子结合起来?

    我见过的最好的选择似乎是使用partials将表单发送回客户机。我宁愿使用客户端Javascript来启用错误消息。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Darin Dimitrov    15 年前

    数据注释验证的工作方式是对包含错误的字段应用特殊的css类,错误消息由生成相应div的html助手显示。因此,最好的选择是返回一个包含表单的局部视图,允许您显示错误消息。

    如果你想用 JSON XML 相反,您必须在响应结构中手动传递验证错误,并在成功回调中使用javascript手动处理。

    就客户端验证而言,它将起作用,因为如果验证失败,表单将不会提交(使用ajax或不使用ajax)。