2012-01-13 9 views
2

jQuery token input field controlのバッキングサービスを作成する必要があります。ASP.NET/DotNetNukeでJSONサービスを公開する最も簡単な方法

私たちのアプリケーションは、SimpleWrapperと呼ばれる(サードパーティの)DotNetNukeモジュールのコントロールで構成されています。このモジュールが動作する方法は、軽量ではありますが、非常に柔軟な方法で通常のASP.NETユーザーコントロールをDNNページに表示する方法です。注意点は.ascxのコントロールであり、.aspxページではありません。

私は主に、使用可能なさまざまな技術のうちのどれを犠牲にしていますか。私はASMXサービスを見てきましたが、それらは主に生成されたJavaScriptプロキシコードを生成するように調整されているようです。私のことができるようにする必要があります。

  • が静的​​URLでサービスをマウント
  • それは単一の文字列パラメータを受け入れてい
  • それは特定の、非常にシンプルな形式でJSONを生成してい

ポストバックなどに応答できるように、ASP.NETとの強力な統合は本当に必要ありません。また、設定ファイルを編集することなく、ファイルを追加するだけで展開可能なものを好むでしょう。このような環境でJSONの塊を吐き出すための簡単な方法は何でしょうか?

答えて

2

WCF(私はバージョン3.51から始まると思います)には、IISと簡単に統合できる素敵な「ゼロ設定」機能があります。あなたがしなければならないのは、IISのサイトで簡単な.SVCファイルを作成してJSONを意識インタフェース&サービス

  • を作成

    • です。

      <%@ ServiceHost 
      Service="MyNamespace.MyService" 
      Factory="System.ServiceModel.Activation.WebServiceHostFactory" %> 
      

      例インターフェイス&サービスの実装、このような何か:

      public class MyService : IMyService 
      { 
           public string Test(string text) 
           { 
            return text; // whatever 
           } 
      
      } 
      
      [ServiceContractAttribute(Namespace="http://schemas.myservice.com")] 
      public interface IMyService 
      { 
          [OperationContractAttribute] 
          [WebInvokeAttribute(UriTemplate="Test", // change this accordingly 
          ResponseFormat=WebMessageFormat.Json, // change this accordingly 
          RequestFormat=WebMessageFormat.Json, // change this accordingly 
          BodyStyle=Wrapped)] 
          string Test(string text); 
      } 
      
      あなたが:-)

      例.SVCファイルをファンキー.configファイルを台無しにする必要はありません

    ここには、このすべてについての特別なクールリンクがあります:WCF Web Services The Easy Way

  • +0

    これは要件を満たすべきであるように見える、ありがとう。もう1つ、サービス実装のクエリ文字列パラメータにアクセスすることは可能ですか? – millimoose

    +0

    @Inerdial:GETリクエストでWebサービスメソッドを呼び出すことは可能ですが、POSTリクエストを発行してこれらのパラメータを受け取るようにWebサービスメソッドを変更することもできます。ここで参照してください:http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/ – Icarus

    +0

    @Icarus私はGETに固執していると思います。トークン入力コントロールはそれを使用しています。それを変更する気がする。 'UriTemplate'パラメータが私が探しているパラメータのようです。 – millimoose

    1

    JSON Exposed thru Restful Service このリンクは、あなたが私はあなたが探しているものであると信じるものを行う方法についてステップバイステップでガイドしますWCF WebサービスやASMX Webサービスである理由を、実際のコードサンプルに

    +0

    私は、配置するために構成ファイルを編集する必要がないものを好むでしょうが、それはショーストッパーではありません。 – millimoose

    1

    を持って、私は表示されませんあなたが必要と言うことには適していません。個人的には、それは私が行く方法です(ASMX上でWCFを選択する)。

    DJ KRAZEが投稿したリンクを見て、HTTPハンドラを使用して、サードパーティ製のJavascriptシリアライザを使用します(必要に応じてJavascriptSerializerを使用しているため、

    +0

    ICaurus私は本当に彼が使用しているか使用していないかは、通常の.netのアプローチ、つまりWCFを推奨していないため、通常の.aspxページではないと述べて以来です。 – MethodMan

    +0

    おそらく適切かもしれません。私はdotnetlandのことをかなり新しくしており、どんな技術が利用可能で、何をするためにできるのかを漠然と認識しています。 – millimoose

    関連する問題