在jQuery UI对话框中加载和编辑数据

时间:2012-05-25 18:37:44

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

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

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

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

  2. 如何在我的Dialog上加载partialView的最佳方式($ .post,$ .get,.load方法等)? mor是否可以通过邮寄安全使用?

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

  4. 谢谢

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

有多种方法可以将部分视图加载到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. 确保您没有加载嵌套表单。