ASP.NET MVC中AJAX表单提交的模式

时间:2011-02-18 19:01:50

标签: jquery asp.net-mvc ajax

以下是我希望能够做到的事情:

  1. 显示一个对话框,其中包含用于创建新记录的表单(例如用户)
  2. 表格通过AJAX提交。
  3. 获取可能与验证错误相同的表单或JSON格式的新记录的响应。
  4. 其他一些信息:

    • 我正在使用partials来渲染表单。因此,当第一次显示对话框时,我进行ajax调用以获取空表单标记,并且在提交表单时,如果表单有验证错误,我将使用相同的部分。
    • 如果响应回来并且存在验证错误,那么我只想用返回的标记替换现有的表单标记。
    • 如果响应返回且没有验证错误,那么我将关闭对话框并获取JSON格式的对象并对页面进行一些其他更改。

    我这部分工作正常。问题是,如果我成功传回一个JSON格式的对象而不是HTML,我可以根据定义永远不确定返回类型是什么。我的第一个问题是始终从AJAX调用中返回JSON。如果表单有验证错误,则返回的JSON将具有名为“html”的属性,该属性将包含更新的表单标记。如果没有验证错误,则返回的JSON将具有一个名为“data”的属性,该属性包含新创建的对象。

    我认为我的解决方案会奏效,但我想知道是否还有其他人想出更优雅的东西。我认为这个基本流程必须在其他应用程序中很常见,所以我不能成为唯一一个寻找这个问题解决方案的人。

1 个答案:

答案 0 :(得分:4)

您提到要添加客户端验证...然后您需要一种在客户端代码中显示验证错误的方法。如果你有,那么你可以改为在JSON中返回一个验证错误列表,而不是从你的AJAX调用中返回HTML,而是将它们插入到客户端验证的相同错误显示方法中。