C# 如何在aspx页面的服务器脚本块中使用[WebMethod]?
我正在尝试创建一个简单的.NET3.5页面,其中包含一些HTML和C# 如何在aspx页面的服务器脚本块中使用[WebMethod]?,c#,asp.net,.net,.net-3.5,webmethod,C#,Asp.net,.net,.net 3.5,Webmethod,我正在尝试创建一个简单的.NET3.5页面,其中包含一些HTML和WebMethod。当我试图从浏览器调用我的WebMethod时,它会不断重复页面。有什么办法让它工作吗 这是我的代码: <%@ Page Language="C#" Inherits="CFW.WebUI.Page" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/
WebMethod
。当我试图从浏览器调用我的WebMethod
时,它会不断重复页面。有什么办法让它工作吗
这是我的代码:
<%@ Page Language="C#" Inherits="CFW.WebUI.Page" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
[System.Web.Services.WebMethod]
public static string Test()
{
return "Hola!";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
...
</html>
[System.Web.Services.WebMethod]
公共静态字符串测试()
{
返回“你好!”;
}
...
注意:我没有使用Ajax.Net。我只想从客户端调用WebMethod(使用jQuery)。您可能还想将[System.Web.Script.Services.ScriptMethod()]添加到您的方法中: **
方法如下:
[WebMethod]
public static string SayHello()
{
return "Hola";
}
在页面中,您需要添加一个ScriptManager
,并将EnablePageMethods
属性设置为true
,如下所示:
<asp:ScriptManager id="sMgr" runat="server" EnablePageMethods="True" />
而不是写作
[System.Web.Services.WebMethod]
使用
[WebMethod]
[System.Web.Script.Services.ScriptMethod]
如果不使用
ScriptManager
,我不确定这是否有效,但在不使用PageMethod
关键字的情况下调用PageMethod
是完全可能的。您可以像调用任何其他Web服务一样调用ASP页面,例如yourpage.aspx/MethodName
。函数应该用[WebMethod]
属性修饰,不需要在页面类本身上放置[ScriptMethod]
标记或任何东西。我确实注意到我将数据发布到这些函数中,而不是获取,但我不确定这是否是必需的。考虑使用类似asmxI的服务,希望将其保存在一个文件中。有可能吗?当然,一旦你在一个文件中定义了它们。我认为不可能在一个ASMX文件中使用.Net webforms和webservices。添加了它<代码>[ScriptMethod(UseHttpGet=true)]无法修复它。但是有它是很好的:-),我希望不使用Ajax.Net。
[WebMethod]
[System.Web.Script.Services.ScriptMethod]