• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例

    來源:懂視網 責編:小采 時間:2020-11-27 22:43:31
    文檔

    Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例

    Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例:在MS Ajax中,JS與C#交互的一種方式就是調用WebService,該WebService可以ASMX的也可以是WCF的,不論哪種方式,系統都會自動為開發者生成代理的JS類。實現方法如下: 1. 建立一個網站,并在其中添加一個WCF服務(這里一定要選擇Ajax-Enabled W
    推薦度:
    導讀Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例:在MS Ajax中,JS與C#交互的一種方式就是調用WebService,該WebService可以ASMX的也可以是WCF的,不論哪種方式,系統都會自動為開發者生成代理的JS類。實現方法如下: 1. 建立一個網站,并在其中添加一個WCF服務(這里一定要選擇Ajax-Enabled W

    在MS Ajax中,JS與C#交互的一種方式就是調用WebService,該WebService可以ASMX的也可以是WCF的,不論哪種方式,系統都會自動為開發者生成代理的JS類。實現方法如下:

    1.        建立一個網站,并在其中添加一個WCF服務(這里一定要選擇Ajax-Enabled WCF Service),如下圖所示:

    2.        IDE會自動為我們生成一個SVC文件,是對外的接口,以及該SVC對應的后臺實現類,該類文件會被放在App_Code下,如下圖所示:

    height=99

    3.修改該類的代碼,如下所示:
    代碼如下:


    [ServiceContract(Namespace = "TestAjax")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class Service
    {
    [OperationContract]
    public bool ValidateUser(string uid, string pwd)
    {
    if (uid=="sa"&&pwd=="sa")
    {
    return true;
    }
    return false;
    }
    }

    4.現在我們就可以頁面里調用了,首先在頁面中添加一個ScriptManager,并引入我們剛才編寫的那個WCF WebService(目的是在運行的時候生成JS的代理類),如下所示:
    代碼如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
    <asp:ServiceReference Path="~/Service.svc"/>
    </Services>
    </asp:ScriptManager>
    </div>
    </form>
    </body>
    </html>

    5.接下來可以編寫JS代碼來直接調用C#寫的WebService了。JS代碼如下所示:
    代碼如下:

    <script type="text/javascript">
    function ValidateUser(uid, pwd) {
    TestAjax.Service.ValidateUser(uid,pwd,OnSucceed ,OnFailed );
    }
    function OnSucceed(result) {
    if (result == true) {
    window.alert("通過驗證");
    }
    else {
    window.alert("驗證失敗!");
    }
    }
    function OnFailed(result) {
    window.alert("操作失敗:"+result ._message);
    }
    </script>

    6.這里請大家注意,在調用TestAjax.Service.ValidateUser方法時,代碼中并沒有直接取該函數的返回值,因為利用這種方案對服務器函數的調用都是異步的,正確的處理方法是指定了兩個回調函數OnSucceed和OnFailed,第一個函數是成功時的回調,后一個是失敗時的回調,這兩個函數都需要一個參數,OnSucceed的參數就是服務器函數的返回值,而OnFailed的參數是失敗時的出錯信息,功能有點像Exception類型,其中_message屬性中出錯信息,_stackTrace中出錯的堆棧跟蹤信息。
    7.千萬別說這種回調方法麻煩!其實這是一種常規的異步回調模式,大多數情況(不論什么語言)都會這么寫的!
    8.頁面上完整的代碼如下所示:
    代碼如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <script type="text/javascript">
    function ValidateUser(uid, pwd) {
    TestAjax.Service.ValidateUser(uid,pwd,OnSucceed ,OnFailed );
    }
    function OnSucceed(result) {
    if (result == true) {
    window.alert("通過驗證");
    }
    else {
    window.alert("驗證失敗!");
    }
    }
    function OnFailed(result) {
    window.alert("操作失敗:"+result ._message);
    }
    function Button1_onclick() {
    var uid = $get("tbxUid").value;
    var pwd = $get("tbxPwd").value;
    ValidateUser(uid,pwd);
    }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
    <asp:ServiceReference Path="~/Service.svc"/>
    </Services>
    </asp:ScriptManager>
    </div>
    用戶名:<input id="tbxUid" type="text" /><br />
    密碼: <input id="tbxPwd" type="text" />
    <input id="Button1" type="button" value="驗證" onclick="return Button1_onclick()" />
    </form>
    </body>
    </html>

    9.運行結果如下所示:
    當用戶名和密碼都是sa時會通過驗證
    當用戶名和官友有一個值不是sa時就不能通過驗證 


    10. 大家有什么問題給我發Email吧:warensoft@foxmail.com

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例

    Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例:在MS Ajax中,JS與C#交互的一種方式就是調用WebService,該WebService可以ASMX的也可以是WCF的,不論哪種方式,系統都會自動為開發者生成代理的JS類。實現方法如下: 1. 建立一個網站,并在其中添加一個WCF服務(這里一定要選擇Ajax-Enabled W
    推薦度:
    標簽: 使用 js 例子
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 99久久久精品| 国产精品久久久天天影视香蕉 | 国产成人精品免费视| 人妻无码久久精品| 成人一区二区三区精品| 国产精品免费AV片在线观看| 亚洲国产精品成人一区| 国产在线精品观看免费观看| 国产精品欧美一区二区三区不卡| 精品一区二区三区在线成人| 亚洲欧洲精品成人久久曰影片| 久久精品一区二区影院| 国产亚洲美女精品久久久| 2024国产精品极品色在线| 99久久精品国产免看国产一区| 精品久久无码中文字幕| 十八18禁国产精品www| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 亚洲AV无码精品色午夜果冻不卡| 九色精品视频在线观看| 国产伦精品一区二区三区视频猫咪 | 国产久爱免费精品视频| 91国内揄拍国内精品对白不卡| 久久九九亚洲精品| 久久精品国产亚洲综合色| 久久精品中文字幕久久| 亚洲精品综合一二三区在线| 久久久久四虎国产精品| 久久国产精品一区二区| 欧美一区二区精品系列在线观看| 久久精品国产亚洲网站| 一区二区三区四区精品视频| 91不卡在线精品国产| 国产精品无码无卡无需播放器| 成人国产精品秘 果冻传媒在线 | 欧美性videos高清精品| 亚洲AV成人精品网站在线播放| 亚洲精品无码不卡在线播HE| 亚洲国产精品无码专区影院| 久久精品九九亚洲精品| 久久久国产乱子伦精品作者|