我正在爲我的應用程序使用ASP.NET頁面方法。一切工作都像魅力,但我不希望我的頁面方法內聯生成在頁面中。從頁面移動ASP.NET頁面方法代理
是否有任何方法將它們移動到WebResource.axd文件或類似的東西。我真的不想寫我自己的代理,只是將生成的代理從頁面移開。
我在我的基頁中有多個頁面方法。有沒有辦法告訴腳本管理器哪些方法,我想包括特定的頁面,因爲我沒有使用所有頁面上的所有方法?
我正在爲我的應用程序使用ASP.NET頁面方法。一切工作都像魅力,但我不希望我的頁面方法內聯生成在頁面中。從頁面移動ASP.NET頁面方法代理
是否有任何方法將它們移動到WebResource.axd文件或類似的東西。我真的不想寫我自己的代理,只是將生成的代理從頁面移開。
我在我的基頁中有多個頁面方法。有沒有辦法告訴腳本管理器哪些方法,我想包括特定的頁面,因爲我沒有使用所有頁面上的所有方法?
我有我的 基頁多頁的方法。有沒有辦法告訴 腳本管理器哪些方法我想要 包含在特定頁面中,因爲我 沒有在所有頁面上使用所有方法?
我不確定這是否可能。然而,我想要做的是將實際頁面本身中特定頁面的特定方法,而不是基本頁面中的特定方法。
您可以做的是使用asmx webservices,而不是使用頁面方法從JavaScript訪問服務器端邏輯。
[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>
的問題是,我需要被提上根據用戶的設置頁面控件的頁面的方法。我希望避免寫代理,因爲我需要在兩個地方重構。如果我們寫了太多的方法,我會將它們移動到一個Web服務。我還需要處理認證。 PageMethods對我來說是完美的,只是我希望他們在控件中,但如果我需要,我會寫一個Web服務。 – Stilgar 2009-08-26 09:26:18