私はC#を使用してAsp.Netで作業しており[WebMethod]
、ユーザーコントロールで定義しています。Web サービスを使用したくありません。
[WebMethod]
属性を持つメソッドを呼び出すにはどうすればよいですか? jQuery(Ajax)リクエストから呼び出したい。
ASCXユーザーコントロール内で宣言されたページメソッドを呼び出すことはできません。pageメソッドは、aspxで宣言するか、適切なasmxWebサービスとして公開する必要があります。
共有機能を一元化することが目標である場合は、サービスの使用を再検討する必要があります。
ASMXサービスには、WCFサービスのような構成上の負担はありません(これは、誰かが「Webサービス」について言及したときに頭に浮かぶことがよくあります)。単純なASMX「ScriptService」を使用する場合、コード、開発、構成などは、現在ASPXファイルで行っていることとほぼ同じであり、一元化されています。ASMX ScriptServicesとASPXページのメソッドは非常に似ているため、基本的なバックエンドコードのほとんどを文字通り共有します。
理論的には可能ですが、少し面倒になり、お勧めしません。
ただし、コントロールを含むaspxページを呼び出し、ascxコントロールによって処理されるクエリ文字列パラメーター(runfunc = 1など)を渡して、関数を実行することができます。
それ以外の場合は、他のすべての機能が実行されます。「WebMethod」関数を呼び出すと、すべてのhtmlを非表示のパネルに配置できます。
これにより、関数名のWebMethodプロパティを削除することもできます。