国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:26:36
字體:
來源:轉載
供稿:網友

在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 runat="server">
<div>
<asp:ScriptManager 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 runat="server">
<div>
<asp:ScriptManager runat="server">
<Services>
<asp:ServiceReference Path="~/Service.svc"/>
</Services>
</asp:ScriptManager>
</div>
用戶名:<input type="text" /><br />
密碼: <input type="text" />
<input type="button" value="驗證" />
</form>
</body>
</html>


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

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


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


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东平县| 衢州市| 砀山县| 潮安县| 应用必备| 辽宁省| 台中县| 雷山县| 苗栗市| 马鞍山市| 太康县| 上林县| 石屏县| 井陉县| 临沭县| 天等县| 建昌县| 淅川县| 伊宁市| 通渭县| 宁安市| 浮山县| 伊宁县| 上杭县| 十堰市| 富宁县| 金湖县| 绥德县| 淮北市| 台湾省| 扶风县| 义乌市| 常熟市| 忻城县| 达孜县| 名山县| 延津县| 芒康县| 温宿县| 吉安市| 收藏|