做訂餐系統手機端時,遇到一個問題,實現登入功能時,我要呼叫後台的方法來驗證和判斷。我們應用的是webForm進行開發的,正常情況下只要綁定按鈕的方法,前後台對應就可以實現。但是,手機端套用MUI樣式之後,就不適用於這種情況了。基於這個問題,我們使用JQuery+Ajax技術,其實MUI中也自備ajax技術。
實作過程:
webForm程式碼:
function login() { var name = document.getElementById("username").value; //获取用户名 var password = document.getElementById("userpassword").value; //获取密码 var params = '{name:"' + name + '",password:"' + password + '"}'; //将用户名和密码作为参数传过去 $.ajax({ url: "LoginMobile.aspx/test", //调用后台方法 data: params, type: "post", dataType: 'text', contentType: "application/json; charset=utf-8", //设置类型,注意一定不能丢 success: function (data) { if (data == '{"d":true}') { //注意判断条件 window.location = "../Order/OrderMobile.aspx"; } else { mui.toast("用户名或密码错误!"); } } }); }
後台 1、在webForm頁面試用Ajax技術呼叫後台方法時,一定要加上contentType : "application/json; charset=utf-8"。否則,就無法呼叫後台方法。 type類型為“Post”。
2、後台方法中
第一,在後台的方法必須是靜態的;
第三,傳遞的參數個數也應該和方法的參數相同。
當然,也可以使用mui中自由的ajax技術,其使用方法跟平常的ajax沒有多大的區別,只是書寫的形式有點不一樣,使用MUI實現的界面形式如下:
[WebMethod] public static bool test(string name,string password) { //实例化登录业务逻辑类 CardBll cardBll = new CardBll(); userBll user = new userBll(); Page page = (Page)System.Web.HttpContext.Current.Handler; bool Flag = false; //一般用户 if (name.Length > 5) { Flag = cardBll.isExist(name, password); if (Flag == true) { System.Web.HttpContext.Current.Session["Admin"] = name; //Session["Admin"] = name; //Session["Username"] = cardBll.username(TxtName .Text .Trim (),TxtPassword.Text .Trim ()); System.Web.HttpContext.Current.Session["Username"] = cardBll.username(name); System.Web.HttpContext.Current.Session["cardLevel"] = cardBll.cardLevel(name); if (System.Web.HttpContext.Current.Session["cardLevel"].ToString() == "普通用户") { Flag = true; } } } return Flag; }
科技對於前後台之間的互動也是一種不錯的方式,靈活運用會為我們帶來巨大的幫助。當然也要根據不同的環境進行不同的設定與使用。
更多ASP.NET中JQuery+AJAX呼叫後台相關文章請關注PHP中文網!