ibcadmin 发表于 2019-12-26 09:10:19

ASP.NET4.0中JavaScript脚本调用Web Service 方法

<p>情况:VS2019.net 4.0 framework</p>
<p>根据课本利用ScriptManager在JavaScript中调用Web service 时,失败。现将过程息争决方法记载如下:</p>
<p>1、界说Web Service</p>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace AjaxTest1
{
    /// <summary>
    /// WebService1 的择要分析
    /// </summary>
   
   
   
    // 若要答应利用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消解释以下行。
   
    public class WebService1 : System.Web.Services.WebService
    {

      
      public int GetTotal(string s,int x,int y)
      {
            if (s == "+")
            {
                return x + y;
            }
            if (s== "-")
            {
                return x - y;
            }
            if (s == "*")
            {
                return x * y;
            }
            if (s == "/")
            {
                return x / y;
            }
            else
            {
                return 0;
            }
      }
    }
}

<p>2、界说JavaScript和.aspx页面;</p>

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AjaxTest1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>js调用WebService实现运算器</title>
    <script type="text/javascript" >
      function RefService() {
            //alert(document.getElementById("Text1").value);
            var num1 = document.getElementById("Text1").value;
            var num2 = document.getElementById("Text2").value;
            var num3 = document.getElementById("Select1").value;
            //alert(document.getElementById("Select1").value);
            WebService1.GetTotal(num3, num1, num2, GetResult);
            //alert(document.getElementById("Select1").value);
      }
      function GetResult(result) {
            document.getElementById("Text3").value = result;
            //alert(result);
      }
    </script>
</head>
<body>
    <form id="form1" runat="server">
      <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReferencePath="~/WebService1.asmx"/>
            </Services>
      </asp:ScriptManager>
      请分别输入用于盘算的两个整数:<br /><br />
      <input id="Text1" type="text" />
      <select id="Select1" name="D1">
            <option value="+" selected="selected">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
      </select>
      <input id="Text2" type="text" />
      <input id="Button1" type="button" value="=" onclick="RefService()" style="height:21px;width:30px"/>
      <input id="Text3" type="text" />
      
    </form>
</body>
</html><br /><br />

<p>整个项目标目次如下:</p>
<p></p>
<p> </p>
<p> </p>
<p>3、运行步伐,点击“=”,却没有任何结果:</p>
<p></p>
<p> </p>
<p>4、办理方法:</p>
<p>在脚本中打上断点,发现步伐是可以实行到14行的,实行到15行的时间,就实行不下去了</p>
<p></p>
<p> </p>
<p> </p>
<p>5、在调用WebService的脚本处,加上定名空间:</p>
<p></p>
<p> </p>
<p> 运行成功:</p>
<p></p>
<p> </p>
<p> </p>
<p> </p>
<p>总结:大概是课本上的范例年代长远,已经不实用与VS2019了。</p>
<p> </p>
页: [1]
查看完整版本: ASP.NET4.0中JavaScript脚本调用Web Service 方法