65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.67/5 (2投票s)

2013年11月4日

CPOL
viewsIcon

17034

本技巧描述了从主页面中的 JavaScript 访问服务器端 (Web 服务) 的步骤。

引言

本技巧描述了从主页面中的 JavaScript 访问服务器端 (Web 服务) 的步骤。

Using the Code

当您需要在避免完整页面回发的情况下从主页面访问服务器端时,这段代码可能会有所帮助。

您需要按照以下步骤操作:

  1. 添加 Web 服务 (asmx 文件),其中包含您想要从 JavaScript 访问的服务器端函数。
    [WebMethod]    
    public void AtServerSide(int a , string b)    
    {         
     int i = 0;    
    }  
  2. 要访问 Web 服务中的 Session 变量,您需要添加属性 EnableSession = true
    [WebMethod(EnableSession = true)]
    public void AtServerSide(int a , string b)    
    {         
     Session["CountCalledFromJS"] = Convert.ToInt32(Session["CountCalledFromJS"]) + 1;  
    }  
  3. 取消注释该行以允许 JavaScript 访问 Web 服务。
    [System.Web.Script.Services.ScriptService]    
  4. 添加主页面并添加对上述创建的 Web 服务的引用(在 masterpage.master form 标签之后添加代码)。
    <asp:ScriptManager ID="ScriptManager1" 
    runat="server" EnablePageMethods="true">
        <Services>
            <asp:ServiceReference Path="../webservice.asmx" />
        </Services>
    </asp:ScriptManager> 
  5. 向主页面添加 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> 
  6. 在主页面/单独文件中添加 JavaScript,以像调用普通函数一样调用 Web 服务。这里我的 Web 服务类名为 "Webservice"。您需要将文本替换为您自己的 Web 服务类名。
    <script type="text/javascript">
        function AccessServerSide() {
            WebService.AtServerSide(1, 'Hello');
        }
    </script> 
  7. 添加使用主页面的普通 aspx 页面并运行解决方案。
© . All rights reserved.