Latest Asp.Net MVC RC permits to return JavaScript ActionResult.
I'd like to dynamically generate from the controller the Jquery script code associated to perform the classical $.ajax calls to the controller for Create Read Update Delete operations in ajax instead of classical get/post form actions.
Should I generate the javascript code at design time (like is now with T4 templates) or at runtime?
I know this will break clear separation from view and controller but is there a better way?
2 に答える
ほとんどの場合、JsonResult を返すコントローラー メソッドを作成するときは、同じボイラープレート JavaScript コードを記述してアクセスすることになりますが、これは何十回 (場合によっては数百回) も記述しましたが、異なるパラメーターと異なるコールバック関数が渡されます。これはコード生成の絶好の機会だと考えていました。私はまだこれを調べていますが、ここに私が見つけたいくつかのリソースがあります:
- T4 を使用して、グリッドを接続する生成された JavaScript を含む AJAX グリッド コントローラーをスキャフォールド アウトすることを検討している Steve Sanderson のブログ投稿。http://blog.stevensanderson.com/2011/04/08/mvcscaffolding-scaffolding-custom-collections-of-files/
Jayrock (http://jayrock.berlios.de/) は、JSON を返すサービスの作成を支援する JSON RPC フレームワークであり、サーバーへの同期呼び出しと非同期呼び出しを行う ajax コーディングを処理する独自のプロキシ JavaScript クラスを生成します。プロジェクト サイトの例:
var s = new HelloWorld();
alert("sync:" + s.greetings());
s.greetings(function(response) { alert("async:" + response.result) });
さらに、.NET Web サービスが行ったものと同様のテスト ページを生成します。過去にこのライブラリを使用したことがあり、効果的であることがわかりました。関連するコードをコントローラーに保持し続けるという考えは気に入っていますが、コンピューターに生成させることができないコードにより多くの時間を費やすことができるように、便宜上これに戻るかもしれません。
- 最後に、Phil Haack は、私たちがここで話していることそのものを行うことについて過去に語っています (私はまだこれを試していません) 。 -メソッド-from-javascript.aspx