質問

アプリケーションにASP.NETページメソッドを使用しています。すべてが魅力のように機能しますが、ページメソッドをページ内にインラインで生成することは望ましくありません。

  1. それらをWebResource.axdファイルまたは同様のものに移動する方法はありますか。生成されたプロキシをページから移動するためだけに、独自のプロキシを記述したくありません。

  2. ベースページに複数のページメソッドがあります。すべてのページですべてのメソッドを使用しているわけではないため、特定のページに含めるメソッドをスクリプトマネージャーに通知する方法はありますか?

役に立ちましたか?

解決

  

私は複数のページメソッドを持っています   ベースページ。伝える方法はありますか   必要なメソッドをスクリプトマネージャー   特定のページに含まれる   すべてのページですべてのメソッドを使用していませんか?

これが可能かどうかわかりません。ただし、その場合、特定のページに固有のメソッドをベースページではなく実際のページ自体に移動します。

できることは、JavaScriptからサーバー側のロジックにアクセスするためにページメソッドを使用する代わりにasmx Webサービスを使用することです。

[System.Web.Script.Services.ScriptService]
public class MyWebService
{

   [WebMethod]
   public string GetData(int id)
   {
      //do some work
      //return result
   }

}

aspxまたはascxコードでは、次のことを行います

function someFunction(){
   WebServiceNamespace.MyWebService.GetData(123, onSuccessCallback, onErrorCallback);
}

function onSuccessCallback(result){
   //process your result. Usually it is encoded as JSON string
   //Sys.Serialization.JavaScriptSerializer.deserialize(...) can be used for deserializing
}

function onErrorCallback(){
   //display some info
}

Webサービスの返されるオブジェクトがどのようにエンコードされるかを調べる必要があります。通常、Jsonとしてエンコードされます。これはweb.configで明示的に指定する必要があるかどうか今は覚えていません。

//編集:
私が忘れたもの。 asp.net ScriptManagerを使用して、スクリプトとWebサービスを登録できます。

<asp:ScriptManager ID="ScriptManager1" runat="server">
   <Scripts>
      <asp:ScriptReference Path="~/scripts/WebServiceScripts.js" />
   </Scripts>
   <Services>
      <asp:ServiceReference Path="~/Services/MyWebService.asmx" />
   </Services>
</asp:ScriptManager>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top