asp.net 4.5演習〜test17-8ajaxWebサービスは4つの算術演算を実装します

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>

私は長い間デバッグを続けてきました。彼はこのクソなことを発明しました。使い心地が悪いです。

おすすめ

転載: blog.csdn.net/modern358/article/details/114941837