一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例

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

2019-07-16 21:35ASP.NET之家 ASP.NET教程

近來總有一些朋友會問到一些入門的問題,把這些問題整理一下,寫出來。在以前的文章里,曾經利用純JS編寫過Ajax引擎,在真正開發的時候,大家都不喜歡以這種低效率的方式開發,利用MS Ajax的集成的引擎,可以簡單不少工作。

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

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

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

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

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

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時就不能通過驗證

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

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

10. 大家有什么問題給我發Email吧:[email protected]

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲AV精品一区二区三区不卡 | 欧美xxoo做爰猛烈视频 | 毛片一区二区三区提莫影院 | yellow高清免费观看日本 | 嫩草视频在线观看视频播放 | 男人使劲躁女人视频免费 | 欧美男女爱爱视频 | 日本暖暖视频在线观看 | 日本人做受全过程视频 | 91亚洲专区 | 亚洲天堂视频在线免费观看 | 国产成人+亚洲欧洲 | 冰雪奇缘1完整版免费观看 变形金刚第一部 | 天天干天天色综合 | 91精品啪在线观看国产日本 | 无套插入 | 亚洲一二三区久久五月天婷婷 | 日本黄色大片免费观看 | 亚洲码在线观看 | 日本不卡免免费观看 | kkkk4444在线看片| 高跟丝袜麻麻求我调教 | a v在线男人的天堂观看免费 | 国产精品免费视频一区一 | 操岳母逼小说 | 538精品视频在线观看 | 日本国产成人精品视频 | 给我一个黄色网址 | 青青草国产免费国产是公开 | 帅老头恋帅老头同性tv | 免费国产一级观看完整版 | 亚洲情射 | 免费视频片在线观看 | 亚洲精品综合 | 春光乍泄在线 | youzljzljzljzlj96| 免费视屏 | 美女的让男人桶爽网站 | 日韩精品免费一区二区三区 | 91九色视频无限观看免费 | 大陆国语自产精品视频在 |