[英]ASP.NET 4.0 - Calling a server-side method from a client side method - PageMethods
我正在尝试从客户端访问服务器端方法(即仅从javascript调用服务器方法)。 我正在使用.NET 4.0 Visual Studio 2010 Ultimate。 我正在构建一个Web控件(ascx)。 我有一个ascx页面(控件的html)和一个ascx.cs页面:ascx如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="BoxButton.ascx.cs" Inherits="ATB.Controls._BoxButton" %>
<asp:ScriptManager ID="SM_ScriptManager" runat="server" EnablePageMethods="true" />
<script type="text/javascript">
function handle() {
PageMethods.manageHandler();
}
</script>
<span id="BoxButton_HtmlSpan" runat="server" onclick="handle();" style="background-color:#efefef;border-style:solid;border-width:1px;border-color:#cccccc;height:25px;text-align:center;padding:3px 3px 3px 3px;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;color:#333333;line-height:15px">
<asp:Label runat="server" Text="Button" id="Text_Label"></asp:Label>
</span>
而ascx.cs文件就是这个文件(仅打印功能):
[System.Web.Services.WebMethod]
public static string manageHandler() {
int i = 0;
System.Console.WriteLine("Ciao");
return "Hello";
}
好的,正如您所看到的,我正试图通过pagemethod解决我的问题,但是它不起作用,而且JScript运行时管理器始终未定义getPageMethods。 好吧,PageMethods是否可能在.net 4.0中不可用?
无论如何,还有另一种方法可以解决有关从客户端脚本调用服务器端方法的问题? 我了解页面方法不过是一项Web服务,在考虑我的Web应用程序的安全性时,这让我有些烦恼。
编辑:
好吧,看来jQuery是一个有效的解决方案...但是它能够允许我调用服务器端方法吗? 我希望是因为我们在谈论ajax对吗?
编辑2:
啊...另一个问题...我尝试使用一种web方法,但是在我按指定方式设置scriptmanager和方法的属性WebMethod时,无法在javascript中找不到PageMethods时出现错误。...
是因为我在ascx内部工作吗???? 可能????? 然后,即使jQuery也无济于事。
我相信PageMethods仅在页面上可用,而在用户控件上不可用。
我建议使用jQuery,它要优雅得多。 这是一个例子
我发现了另一个使用JQuery的教程: 从JQUERY调用服务器端函数
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.