모바일 버전의 음식 주문 시스템을 작업할 때 로그인 기능을 구현할 때 확인 및 판단을 위해 백그라운드 메소드를 호출해야 하는 문제가 발생했습니다. 우리는 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("用户名或密码错误!"); } } }); }
백엔드 코드:
[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; }
특별 참고 사항:
1. Ajax 기술을 사용하여 webForm 페이지에서 백그라운드 메소드를 호출할 때 contentType: "application/json; charset=을 추가해야 합니다. utf-8". 그렇지 않으면 백그라운드 메서드를 호출할 수 없습니다. 유형은 "게시물"입니다.
2. 백그라운드 메소드에서
먼저, 백그라운드 메소드는 static이어야 합니다.
둘째, 메소드 선언에는 [System.Web.Services] 속성이 추가되어야 합니다. . WebMethod()];
셋째, 전달되는 매개변수의 개수도 메소드의 매개변수와 동일해야 합니다.
물론 mui에서도 무료 ajax 기술을 사용할 수 있습니다. 작성 형식이 약간 다른 점을 제외하면 사용법은 크게 다르지 않습니다. MUI를 사용하여 구현한 인터페이스 형식은 다음과 같습니다.
mui.ajax('LoginMobile.aspx/test', { data: params, dataType: 'text', type: 'post', contentType: "application/json; charset=utf-8", success: function (data) { if (data == '{"d":true}') { window.location = "../Order/OrderMobile.aspx"; } else { mui.toast("用户名或密码错误!"); } } })
Ajax 기술은 프론트엔드와 백엔드 간의 상호작용을 위한 좋은 방법이기도 하며, 이를 유연하게 사용하면 큰 도움이 될 것입니다. 물론 다양한 환경에 따라 다양한 설정과 활용이 이루어져야 합니다.
ASP.NET에서 JQuery+AJAX 호출 배경과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!