1

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

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

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

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

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

谢谢

4

2 回答 2

1

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

于 2012-05-26T04:01:35.680 回答
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. 确保您没有加载嵌套表单。

于 2012-05-26T04:23:02.570 回答