我正在为我的应用程序使用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