情况:VS2019 .net 4.0 framework
根据课本利用ScriptManager在JavaScript中调用Web service 时,失败。现将过程息争决方法记载如下:
1、界说Web Service
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Services;
- namespace AjaxTest1
- {
- /// <summary>
- /// WebService1 的择要分析
- /// </summary>
- [WebService(Namespace = "http://tempuri.org/")]
- [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
- [System.ComponentModel.ToolboxItem(false)]
- // 若要答应利用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消解释以下行。
- [System.Web.Script.Services.ScriptService]
- public class WebService1 : System.Web.Services.WebService
- {
- [WebMethod]
- 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;
- }
- }
- }
- }
复制代码
2、界说JavaScript和.aspx页面;
- <%@ 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:ServiceReference Path="~/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 />
复制代码
整个项目标目次如下:
3、运行步伐,点击“=”,却没有任何结果:
4、办理方法:
在脚本中打上断点,发现步伐是可以实行到14行的,实行到15行的时间,就实行不下去了
5、在调用WebService的脚本处,加上定名空间:
运行成功:
总结:大概是课本上的范例年代长远,已经不实用与VS2019了。
|