2009-04-03 8 views
3

私はページ全体のポストバックなしで、小さな、原子的なアクションを行う必要があるASP.Net mvcアプリケーションを開発しています。これを行う論理的な方法は、もちろんajax呼び出しです。ASP.Net MVCとWebservices/Ajax - どのルートをとるべきですか?

私の質問は - これを達成する最良の方法は何でしょうか? - おそらくJSON結果として返すMVCアプリケーション内

  • WCF + AJAX
  • コントローラのアクション:私の知る限り、私は次の行に沿ってそれを行うことができます知っていますよう

  • ウェブサービス(結合/別々のプロジェクト)+ AJAX

Iは、ユーザが現在限りクッキー/セッションIDを介して行われるが、Webサービス/ WCF/AJAXを使用したときに記録されることが要件を有します私は上記のすべての方法がこれを可能にすることを知っています。

私が使用する方法は、標準化されたアクセシブルなメソッド呼び出しを使用してデータベースにアクセスすることになりますので、すべてを同じプロジェクト/名前空間内に収める必要はありません。

これに関する人々の考え/経験を聞きたいですか?

答えて

3

コントローラーアクションとして実行することをおすすめします。理由は次のとおりです。同じアクションでいくつかの異なる表現を返すようになる可能性があります。たとえば、GetPerson()アクションは、PersonデータをXML、JSON、HTML(および場合によっては他の表現)として返すことができます。

これはRailsとASPMVCの共通のアプローチです。

あなたは間違いなく、理由のカップルがある理由ここで、コントローラのアクションを使用する必要があります
+0

あなたの要件に応じて、部分的な操作(asp.net MVC言語のユーザーコントロール)、またはjsonのコントローラーアクションを使用して、このメソッドを実行します。 簡単で完全に無痛です。 – Michael

1

:(私の仮定は/あなたはすでに任意のWCFを持っていないということですWCF /ウェブサービスを使用して

  • だけでこれを行うためにやり過ぎだろう
  • コントローラのアクションを使用すると、このような状況にも当てはまります
  • ユーザーがJavascriptを無効にしている場合、またはサポートされていないブラウザの場合は簡単にフォールバックできます。マイケルはあなたがパーシャル

役立ちます希望をレンダリングすることにより、このアトミック更新を行うことができます述べたようにまた

  • (ちょうど完全なビューを返すアクションメソッドのカップルを作成することによって)。

  • 関連する問題