从主页面中的 JavaScript 访问服务器端 (Web 服务)






4.67/5 (2投票s)
本技巧描述了从主页面中的 JavaScript 访问服务器端 (Web 服务) 的步骤。
引言
本技巧描述了从主页面中的 JavaScript 访问服务器端 (Web 服务) 的步骤。
Using the Code
当您需要在避免完整页面回发的情况下从主页面访问服务器端时,这段代码可能会有所帮助。
您需要按照以下步骤操作:
- 添加 Web 服务 (asmx 文件),其中包含您想要从 JavaScript 访问的服务器端函数。
[WebMethod] public void AtServerSide(int a , string b) { int i = 0; }
- 要访问 Web 服务中的
Session
变量,您需要添加属性EnableSession = true
。
[WebMethod(EnableSession = true)] public void AtServerSide(int a , string b) { Session["CountCalledFromJS"] = Convert.ToInt32(Session["CountCalledFromJS"]) + 1; }
- 取消注释该行以允许 JavaScript 访问 Web 服务。
[System.Web.Script.Services.ScriptService]
- 添加主页面并添加对上述创建的 Web 服务的引用(在
masterpage.master
的form
标签之后添加代码)。
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"> <Services> <asp:ServiceReference Path="../webservice.asmx" /> </Services> </asp:ScriptManager>
- 向主页面添加 HTML 标记以调用服务器。
<h1>Ajax Call from master page to asmx through javascript</h1> <label title="Click to access server from javascript" onclick="AccessServerSide();">Click to access server from javascript</label>
- 在主页面/单独文件中添加 JavaScript,以像调用普通函数一样调用 Web 服务。这里我的 Web 服务类名为 "
Webservice
"。您需要将文本替换为您自己的 Web 服务类名。
<script type="text/javascript"> function AccessServerSide() { WebService.AtServerSide(1, 'Hello'); } </script>
- 添加使用主页面的普通 aspx 页面并运行解决方案。