2

ページに 2 つのセクションがあります。ページを index.cshtml と呼びましょう。

最初のセクションは「検索条件」で、2 番目のセクションは「検索結果」です。

ここで、検索条件セクションと検索結果セクションを部分ビューとして作成し、index.cshtml の下部にボタンを追加しました。これにより、検索結果が取得され、「検索」という名前の JavaScript 関数が呼び出されます。

この関数は検索を実行します。つまり、検索条件の入力を受け取り、それを引数として jQuery.get ($.get) メソッド呼び出しにパッケージ化します。

次に、この呼び出しは SearchResultsController(SearchCriteria myCriteria) からの応答を読み取り、$.html() を使用して検索結果の部分ビューの検索結果を置き換えます。

問題は、これがこれを行うための最良の方法ですか?または、MVC の足場に、独自の JavaScript や jquery などのクライアント コードを手でロールすることなく実行できる方法はありますか?

私がやりたいことは、ページ A のボタンをクリックし、部分ビュー B から入力を取得し、その入力をストアド プロシージャに渡し、ビュー C の内容をプロシージャの結果で更新することです。全ページ更新。それはそれと同じくらい簡単です。

部分的なビューの更新を実現するには、最小限の手動コードを必要とする他の方法はありますか? コードへのリンクはありますか?

4

2 に答える 2

2

まず、jQuery と JavaScript を混同しないでください。jQuery は JavaScript 上に構築されたフレームワークであり、AJAX リクエストの送信を容易にし、デフォルトでクロスブラウザーに対応するなどの特定のことを行います。したがって、はい、jQueryなしで非同期更新を行うことはできますが、 JavaScriptなしではできません。

とはいえ、これは部分ビューを扱う新しい開発者にとってよくある誤解のようです。部分ビューは、複数のビュー間で同様のビュー コードを共有できるようにするための便利なサーバー側にすぎません。ページがクライアントにレンダリングされると、部分ビューを使用したという事実はもはや問題ではなくなります。ページの更新を開始せずにページ上の何かを更新する場合は、AJAX 要求を送信して新しいデータ (JSON、XML など) または表示する HTML を取得する必要があります。次に、JavaScript を使用して、その応答を使用してページとは異なるものをレンダリングします。繰り返しますが、これは部分ビューとは何の関係もありません。

于 2013-08-20T16:12:56.507 に答える
0

あなたが説明した方法は、結果を更新するための最良/最もクリーン/最も効率的な方法であり、部分ビューを使用した優れた実装です。更新を非同期にしたい場合は、何らかの形式の JavaScript を使用する必要がありますが、jQuery である必要はありません。

于 2013-08-20T16:10:57.713 に答える