4

構築中の ASP.NET MVC アプリケーション用の一般的な jQuery ベースの検索プラグインを開発する必要がありますが、それがどのように適合するのか、またはベスト プラクティスは何かがわかりません。私は次のことをしたい:

$().ready(function() {
    $('#searchHolder').customSearch('MyApp.Models.User');
});

Models.User に特定のインターフェイスを実装している限り、jQuery はリフレクション サービスと対話して、関連する UI を一般的に構築できます。

楽しそうに聞こえますが、ビューから JavaScript を呼び出しているようです。これにより、ビュー関連のアクティビティを実行して検索 UI を構築し、検索を実行してユーザーとやり取りします。そこにたくさんの Controller タスクを投げます。

では、これは実際にどこに当てはまるのでしょうか。jQuery プラグインを MVC の考え方により適合するように構成する別の方法はありますか? MVC は、別の MVC 構造内で独自の形式に縮小しても機能しますか? 1 つのプラグインのためにこれらの問題を無視する必要がありますか?

4

5 に答える 5

2

フォローアップするために(これについて他の誰も意見を持っていないことに非常に驚いています)、ベストプラクティスを維持するために、jTemplatesを採用することにしました。

これにより、サーバー側のコントローラーからモデル スタイルの JSON を要求し、ビューで既に使用している構文と同様の構文を使用して処理できるようになり、必要な JavaScript UI MVC との互換性が保たれます。クライアントがサーバーからビュー テンプレートを要求する必要があるという点で、わずかなオーバーヘッドがありますが、それが遅くなりすぎる場合は、いつでも少し犠牲にして最初の JSON 要求で送信できます。

于 2008-10-14T08:07:57.513 に答える
1

私は実際にこれについて多くのことを調べていて、公式にサポートされている新しい jquery プラグイン tmpl がビュー エンジンとして機能することを発見しました。JavaScript で完全な MVC/MVP パラダイムを作成する方法について、チュートリアルをここに書きました

于 2010-12-14T05:11:34.827 に答える
1

あなたが望むのはpartialsRoR 用語のように聞こえるので、ASP.NET MVC に同じ形式で存在するかどうかはわかりません。基本的にパーシャルは、独自のファイルで定義されたビューの一部であり、どこからでも呼び出すことができます。したがって、検索コントローラーで、要求されたモデルを引き出し、リフレクションを行ってデータを取得し、それを JSON に構築し、そのモデルの部分的なビューも取得します。モデル名に基づいてパーシャルを命名するための規則に従うと、大きなswitchステートメントや余分な構成ファイルを節約できるため、簡単に見つけることができます。

私は間違っているかもしれませんが、Javascript から Controller を呼び出して HTML が返されるのを少し心配しているようです。それはまったく問題ありません。ビューを適切に取得し、ページの残りの部分を処理せず、その呼び出しに必要なものだけを処理するだけです (なぜ MVC はUpdatePanels よりもはるかに優れているのですか!)

于 2008-10-14T08:46:11.650 に答える
0

サーバー上のモデル、ビュー、およびコントローラーと、クライアント (ブラウザー) 上の (Javascript/DOM) モデル、ビュー、およびコントローラーを備えた 2 つの別個のシステムがあるかのようにアプローチします。Ajax は、クライアントがサーバーからサービスを要求する方法にすぎません。

于 2008-10-14T08:33:18.257 に答える
0

あなたが達成しようとしていることを理解しているかどうかはわかりませんが、サーバー上に関連する UI をビューの一部として (たとえば、さまざまなページでレンダリングできるユーザー コントロールとして) 構築し、それを display:none に設定します。スタイルを設定し、クライアント側で JQuery を使用して、ユーザーがリンクなどをクリックしたときにそれを表示します。

その後、プラグインは $.ajax を使用して検索リクエストをアプリケーションに送信し、そこで関連するアクティビティを実行して、検索結果で部分ビューをレンダリングできます。次に、ajax コードがそれを取得して、ドキュメントに挿入します。

于 2008-10-13T08:22:26.283 に答える