【问题标题】:Load and Edit Data in jQuery UI Dialog在 jQuery UI 对话框中加载和编辑数据
【发布时间】:2012-05-25 18:37:43
【问题描述】:

我有一个 asp.net mvc 应用程序,我正在使用 Webgrid 列出客户。

我想在 jQuery 对话框上编辑客户的数据,所以,我认为对返回 PartialView 的控制器执行操作是最好的方法。问题是这个 PartialView 有一些 javascript 代码来验证这个输入(我正在使用 jQuery Validation 在客户端进行验证)。我的问题是:

  1. 在对话框中验证我的表单并通过 jquery 和 ajax 将其发送到服务器的所有脚本都应该在页面上,或者有什么方法可以将它放在 PartialView 上?

  2. 在我的 Dialog 上加载 partialView 的最佳方式是什么($.post、$.get、.load 方法等)?通过邮寄使用mor安全吗?

  3. 是否有任何代码示例可发布或任何链接显示?我想看一些代码示例:)

谢谢

【问题讨论】:

  • 关于#1,您正在做服务器端验证以及客户端验证,对吧?您不能永远仅依赖客户端验证。
  • 是的,但我想看看如何在 ajax 加载的 jquery ui 对话框上做到这一点!

标签: javascript jquery ajax asp.net-mvc jquery-ui


【解决方案1】:

This SO answer 应该可以帮助您使用 PartialView 加载 jQuery UI 对话框,而我的经验是 PartialView 可以包含 JavaScript,但前提是它就像一个视图一样提供,即从调用的 PartialView 中的 JavaScript另一个 PartialView 我不工作

【讨论】:

    【解决方案2】:

    有多种方法可以将局部视图加载到您的 jquery 对话框中。它采用最安全的方法,即在页面加载时加载部分视图。像这样的:

    <div id="mydialog">
        @Html.Partial("MyAction", "MyController")
    </div>
    

    然后使用 jquery 我将此 div 块转换为 jquery 对话框。

     <script type="text/javascript">
      $(document).ready(function () {
        $("#mydialog").dialog();       
      });
    
     //this function can be used in onclick handler from anywhere to show the dialog.
     function OpenDialog()
     {
          $("#mydialog").dialog("open");
     }
     </script>
    

    为什么我认为它安全是因为所有类型的验证都非常有效,并且还应用了代码可重用性。但是,您也可以按照 jimmym 的建议动态地将部分视图加载到对话框中。您需要注意这里的两个陷阱。

    1. jquery unobtrusive 必须解析新加载的表单。你可以这样做。

      $.validator.unobtrusive.parse($('#myform'))

    2. 确保您没有加载嵌套表单。

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多