1

asp.net mvc アプリケーションがあり、Webgrid を使用して顧客を一覧表示しています。

jQueryダイアログで顧客のデータを編集したいので、コントローラーでPartialViewを返すアクションを実行するのが最善の方法だと思います。問題は、この PartialView にこの入力を検証するための JavaScript コードがあることです (クライアント側で検証するために jQuery Validation を使用しています)。私の質問は次のとおりです。

  1. ダイアログでフォームを検証し、jquery と ajax でサーバーに送信するすべてのスクリプトは、ページ上にある必要がありますか、それとも PartialView に配置する方法はありますか?

  2. 私のダイアログ ($.post、$.get、.load メソッドなど) に partialView をロードする最良の方法は? mor は郵送で安全に使用できますか?

  3. 投稿するコードのサンプルや show-me へのリンクはありますか? コードのサンプルをいくつか見たいです:)

ありがとうございました

4

2 に答える 2

1

このSOの回答は、jQuery UIダイアログをPartialViewでロードするのに役立つはずです。私の経験では、PartialViewにはJavaScriptを含めることができますが、それがビューであるかのように提供される場合、つまり、別のPartialView myから呼び出される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 で提案されているように、部分ビューをダイアログに動的にロードすることもできます。ここで 2 つの落とし穴に注意する必要があります。

  1. Jquery unobtrusive は、新しくロードされたフォームを解析する必要があります。このようなことができます。

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

  2. ネストされたフォームをロードしていないことを確認してください。

于 2012-05-26T04:23:02.570 に答える