2016-12-06 8 views
0

私はVS 2010 vb.netで作成されたウェブサイトプロジェクトを読んでいます。そこでは、javacriptメソッドで呼び出される同じプロジェクトにwebservice.asmxが実装されています。言い換えれば、ウェブサービスをAPIとして実装されていない、それは私がデータベースを呼び出すためのメソッドを追加することができwebservice.asmxあり、そしてそれらの方法は、functions.My質問があるJavaScriptで使用されています。同じプロジェクトのウェブサービスとウェブサイト

  1. 重要性は何ですかサーバーへのポストバックを作成し、そこにデータフォームを取得する代わりに、javascriptからWebサービスを呼び出すのですか?
  2. セッションについてはどうですか? Webサービスはユーザーのセッションを表示できますか?私はいくつかのセッションは、HttpContext.Current.Session("UserID") = userIdとして記入することができますので、私はこの質問をしています。
  3. ユーザーページのセッションを捕捉して入力することができれば、同じユーザーのASPページでコントロールにアクセスできますか?なぜ?

は私が私が知っていると、そのWebサービスは、サーバー上で動作し、アプリケーションでAPIとして使用されている、このWebサービスで少し混乱しています...これは私が書かれたWebサービスやWebサイトと連携初めてです同じプロジェクトで、ありがとう。 Webサービスを呼び出す

答えて

2

プロジェクトを作成したい場合(ポストバックを行うよりも多くの迅速なので、あなただけのあなたのウェブサイトの部分的な更新を行いたい場合は、Webサービスを使用するには良い選択肢であります最初から、ASMX WebServiceではなくWeb APIを使用します)。もちろん、結果をクライアント側のWebページに統合する必要があります。 UIの変更を招く非同期要求を使用する場合は、ASPXページでUpdatePanelを使用することもできます。

CORSの問題を回避するために、Webフロントエンドと同じアプリケーションでWebServiceをホストすることも一般的です。

あなたがtrueにWebMethod属性にEnableSessionを設定した場合、Webサービスは、ユーザーのセッションにアクセスすることができます。いくつかの落とし穴については、this questionを参照してください。

Webサービスへの要求は、それは(C#/ VB.NETのコードを読み込む)サーバー上のページのコントロールに直接アクセスすることはできませんが、あなたは、HTML文書を変更することができます別の要求であるためツリーをクライアント上に表示することができます。

ページとWebServiceの間でサーバー上でコードを共有する必要がある場合は、ページとWebServiceの両方によって呼び出されるヘルパー/ビジネスロジッククラスに別々のメソッドを作成する必要があります。

たとえば、ページとWebServiceの両方がデータベースからデータを取得する必要がある場合は、ASPXページのデータベースアクセス用のコードを別のクラスに移動します(多くのその他の理由)、ASPXページとWebServiceの両方でクラスを使用します。

+0

あなたの返事をありがとう、質問についてn3あなたは私に例やリンクを教えてもらえますか?私は問題に固執しています:私は別のクラスを継承するクラスを使用していますが、今はこの継承クラスのメソッドを使用するWebサービスメソッドを呼び出す必要がありますが、いくつかのラベル... –

+0

ようこそ。私はn3のサンプルが役立つことを願っています。 – Markus

関連する問題