ページからASP.NETページメソッドプロキシを移動する
-
05-07-2019 - |
質問
アプリケーションにASP.NETページメソッドを使用しています。すべてが魅力のように機能しますが、ページメソッドをページ内にインラインで生成することは望ましくありません。
-
それらをWebResource.axdファイルまたは同様のものに移動する方法はありますか。生成されたプロキシをページから移動するためだけに、独自のプロキシを記述したくありません。
-
ベースページに複数のページメソッドがあります。すべてのページですべてのメソッドを使用しているわけではないため、特定のページに含めるメソッドをスクリプトマネージャーに通知する方法はありますか?
解決
私は複数のページメソッドを持っています ベースページ。伝える方法はありますか 必要なメソッドをスクリプトマネージャー 特定のページに含まれる すべてのページですべてのメソッドを使用していませんか?
これが可能かどうかわかりません。ただし、その場合、特定のページに固有のメソッドをベースページではなく実際のページ自体に移動します。
できることは、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>
所属していません StackOverflow