使用以下方法必須注意路徑是否正確,這點是絕大部分問題的根源。
取數例子:不刷新獲取登錄信息
登錄前:
登錄后:
頁面jq:
$("#btnLogin").click(function () { var name = $("#loginName"); var pass = $("#loginPass"); var code = $("#txtCode"); if ($.trim(name.val()) == "") { name.focus(); return alert("請輸入你的用戶名!"); } if ($.trim(pass.val()) == "") { pass.focus(); return alert("請輸入你的密碼!"); } if ($.trim(code.val()) == "") { code.focus(); return alert("請輸入你的驗證碼!"); } $.ajax({ contentType: "application/json", url: "/WS/vinson.asmx/Logon", data: "{userName:'" + name.val() + "',userPass:'" + pass.val() + "',code:'" + code.val() + "'}", type: "POST", dataType: "json", success: function (json) { json = eval("(" + json.d + ")"); if (json.success == "error") { $("#divLogin").show(); alert(json.msg); code.val(""); pass.val(""); pass.focus(); UpdateImage(); } else if (json.success == "success") { $("#imgFace").attr("src", "/gamepic/face" + json.fid + ".gif"); var name = SubString(json.account, 12, ""); $("#dlInfo").html("<span>帳號:" + name + "</span><span>ID:" + json.gid + "</span>").attr("title", json.account); $("#mOrder").html(json.morder); $("#loves").html(json.loves); $("#mPat a").before(json.UserPat+" "); $("#counts").html(json.counts); if (parseInt(json.dayCount) > 0) $("#qd ul").css("background", "url(../images/qiandao_n.png) 0 0px no-repeat"); else $("#qd ul").css("background", "url(../images/qiandao_n.png) 0 -60px no-repeat"); $("#divLogin").hide(); $("#divInfo").show(); } }, error: function (err, ex) { alert(err.responseText); UpdateImage(); } }); })
vinson.asmx文件:
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq; using Game.Entity.Accounts; using Game.Facade; using Game.Utils; using System.Text; using System.Collections.Generic; using Game.Kernel; /// <summary> ///vinson 的摘要說明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。 [System.Web.Script.Services.ScriptService] public class vinson : System.Web.Services.WebService { public vinson () { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } private AccountsFacade accountFacade = new AccountsFacade(); private DataControl gData = new DataControl(); /// <summary> /// 用戶登錄 /// </summary> /// <param name="userName"></param> /// <param name="userPass"></param> /// <param name="code"></param> /// <returns></returns> [WebMethod] public string Logon(string userName, string userPass, string code) { string msg = ""; if (TextUtility.EmptyTrimOrNull(userName) || TextUtility.EmptyTrimOrNull(userPass)) { msg = "抱歉!您輸入的用戶名或密碼錯誤了。"; return "{success:'error',msg:'" + msg + "'}"; } //驗證碼錯誤 if (!code.Equals(Fetch.GetVerifyCode(), StringComparison.InvariantCultureIgnoreCase)) { msg = "抱歉!您輸入的驗證碼錯誤了。"; return "{success:'error',msg:'" + msg + "'}"; } Message umsg = accountFacade.Logon(userName, userPass); if (umsg.Success) { UserInfo ui = umsg.EntityList[0] as UserInfo; ui.LogonPass = TextEncrypt.EncryptPassword(userPass); Fetch.SetUserCookie(ui.ToUserTicketInfo()); string mOrder = ui.MemberOrder == 0 ? "普通會員" : ui.MemberOrder == 1 ? "藍鑽會員" : ui.MemberOrder == 2 ? "黃鑽會員" : ui.MemberOrder == 3 ? "白鑽會員" : "紅鑽會員"; int UserPat = (int)gData.SelectValue("select UserPat from AccountsInfo where UserID=" + ui.UserID, "DBAccounts", 0); int counts = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and month(CollectDate)=" + System.DateTime.Now.Month, "DBRecord", 0); int dayCount = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and convert(varchar(100),CollectDate,23)='" + System.DateTime.Now.ToString("yyyy-MM-dd") + "'", "DBRecord", 0); msg = "{success:'success',account:'" + ui.Accounts + "',gid:'" + ui.GameID + "',dayCount:'" + dayCount + "',counts:'" + counts + "',UserPat:'" + UserPat + "',loves:'" + ui.LoveLiness + "',morder:'" + mOrder + "',fid:'" + ui.FaceID + "'}"; } else { msg = "{success:'error',msg:'" + umsg.Content + "'}"; } return msg; } /// <summary> /// 獲取用戶登錄信息 /// </summary> /// <returns></returns> [WebMethod] public string GetUserInfo() { UserTicketInfo userTick = Fetch.GetUserCookie(); if (userTick == null) return "{}"; Message umsg = accountFacade.GetUserGlobalInfo(userTick.UserID, 0, ""); if (umsg.Success) { UserInfo ui = umsg.EntityList[0] as UserInfo; string mOrder = ui.MemberOrder == 0 ? "普通會員" : ui.MemberOrder == 1 ? "藍鑽會員" : ui.MemberOrder == 2 ? "黃鑽會員" : ui.MemberOrder == 3 ? "白鑽會員" : "紅鑽會員"; int UserPat = (int)gData.SelectValue("select UserPat from AccountsInfo where UserID=" + ui.UserID, "DBAccounts", 0); int counts = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and month(CollectDate)=" + System.DateTime.Now.Month, "DBRecord", 0); int dayCount = (int)gData.SelectValue("select count(*) from RecordSignIn where UserID=" + ui.UserID + " and convert(varchar(100),CollectDate,23)='" + System.DateTime.Now.ToString("yyyy-MM-dd") + "'", "DBRecord", 0); return "{success:'success',account:'" + ui.Accounts + "',gid:'" + ui.GameID + "',dayCount:'" + dayCount + "',counts:'" + counts + "',UserPat:'" + UserPat+"',loves:'" + ui.LoveLiness + "',morder:'" + mOrder + "',fid:'" + ui.FaceID + "'}"; } return "{}"; } /// <summary> /// 檢測用戶名 /// </summary> /// <param name="userName"></param> /// <returns></returns> [WebMethod] public string CheckName(string userName) { Message umsg = accountFacade.IsAccountsExist(userName); if (umsg.Success) { return "{success:'success'}"; } return "{success:'error',msg:'" + umsg.Content + "'}"; } /// <summary> /// 檢測昵稱 /// </summary> /// <param name="userName"></param> /// <returns></returns> [WebMethod] public string CheckNickName(string nickName) { if (accountFacade.IsNickNameExist(nickName)) { return "{success:'success'}"; } return "{success:'error'}"; } /// <summary> /// 用戶魅力排名 /// </summary> /// <returns></returns> [WebMethod] public string GetUserLoves() { StringBuilder msg = new StringBuilder(); IList<UserInfo> users = accountFacade.GetUserInfoOrderByLoves(); if (users == null) return "{}"; msg.Append("["); foreach (UserInfo user in users) { msg.Append("{userName:'" + user.NickName + "',loves:'" + user.LoveLiness + "'},"); } msg.Remove(msg.Length - 1, 1); msg.Append("]"); return msg.ToString(); } }
可以使用這種方法跳到asmx頁面做一些事情,而不僅僅是像上面那樣取數:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Data; /// <summary> ///Lottery 的摘要說明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。 [System.Web.Script.Services.ScriptService] public class Lottery : System.Web.Services.WebService { public Lottery () { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } private DataControl gData = new DataControl(); [WebMethod] public string insertLotteryLog(string LotteryID, string UserID) { string msg = ""; string strClientIP = ""; if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) strClientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[] { ',' })[0]; else strClientIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; List<string[]> sqls = new List<string[]>(); //1.插入抽獎記錄 string sql = "insert into QPRecordDB.dbo.RecordLotteryLog (UserID,LotteryID,ClientIP,CollectDate) values (" + UserID + "," + LotteryID + ",'" + strClientIP + "',getdate())"; sqls.Add(new string[] { "DBRecord", sql }); if (gData.ExecuteMultiTran(sqls)) { msg = "{success:'success',msg:'insert success'}"; } else { msg = "{success:'error',msg:'insert failed'}"; } return msg; } [WebMethod] public string LotteryFee(string UserID) { string msg = ""; List<string[]> sqls = new List<string[]>(); //1.扣手續費 long Score = (long)gData.SelectValue("select Score from QPTreasureDB.dbo.GameScoreInfo where UserID=" + UserID, "DBTreasure", 0); if (Score >= 200) { string sql = "update QPTreasureDB.dbo.GameScoreInfo set Score=Score-200 where UserID=" + UserID; sqls.Add(new string[] { "DBTreasure", sql }); if (gData.ExecuteMultiTran(sqls)) { msg = "{success:'success'}"; } else { msg = "{success:'error'}"; } } else msg = "{success:'arrears'}"; return msg; } [WebMethod] public string FeeOver(string UserID,string FeeTime) { string msg = ""; int RecordID = (int)gData.SelectValue("select RecordID from RecordLotteryFee where UserID=" + UserID + " and convert(varchar(100),CollectDate,23)=convert(varchar(100),getdate(),23)", "DBRecord", 0); List<string[]> sqls = new List<string[]>(); string sql = "update QPRecordDB.dbo.RecordLotteryFee set FeeTime=" + FeeTime + " where RecordID=" + RecordID; sqls.Add(new string[] { "DBRecord", sql }); if (gData.ExecuteMultiTran(sqls)) { msg = "{success:'success'}"; } else { msg = "{success:'error'}"; } return msg; } [WebMethod] public string getLotteryName(string LotteryID) { string msg = ""; string LotteryName = gData.SelectValue("select LotteryName from Lottery where LotteryID=" + LotteryID, "DBNativeWeb", "").ToString(); msg = "{lotteryname:'" + LotteryName + "'}"; return msg; } }