webservice1.asmx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace test17_8
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
//要点1,一定要开启下面的scriptserbice
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
//要点2,同名方法重载,不可行
[WebMethod]
public double CalculationNumber(double num1, double num2,string operator1="+")
{
double result = 0.0d;
switch (operator1)
{
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (Convert.ToInt32(num2) == 0)
{
result = 0.0d;
}
else
{
result = num1 / num2;
}
break;
default:
result = 0.0d;
break;
}
return Math.Round(result,2);
}
}
}
webform1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="test17_8.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></title>
<script type="text/javascript">
//要点3,ScriptManager1中一定要设置ServiceReference
function btnOk_Click()
{
var num1 = document.getElementById("Text1").value;
var num2 = document.getElementById("Text2").value;
var operator1 = document.getElementById("Select1");
var op = operator1.options[operator1.selectedIndex].value;
var result = test17_8.WebService1.CalculationNumber(num1, num2, op,inputResult);
}
//要点4,调用webservice的方法,一定要加入回调函数,否则不可行
function inputResult(result)
{
document.getElementById("Text3").value = result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>四则运算计算器</h3>
<p>请输入计算的两个数字,可以是小数</p>
<input id="Text1" type="text"/>
<select id="Select1" style="width:40px;">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input id="Text2" type="text" />
<input id="Button1" type="button" value="=" onclick="btnOk_Click()" />
<input id="Text3" type="text" />
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/WebService1.asmx"/>
</Services>
</asp:ScriptManager>
</form>
</body>
</html>
我调试了很久,谁发明的这个操蛋玩意。感觉不好用。