ASP.NET中JQuery+AJAX调用后台

    做订餐系统手机端时,遇到一个问题,实现登录功能时,我要调用后台的方法进行验证和判断。我们应用的是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、在webForm页面试用Ajax技术调用后台方法时,一定要加上contentType: "application/json; charset=utf-8"。否则,就无法调用后台方法。type类型为“Post”。

      2、后台方法中

          第一,后台的方法必须是静态的;

          第二,方法声明要加上特性[System.Web.Services.WebMethod()];

          第三,传递的参数个数也应该和方法的参数相同。


    当然,也可以使用mui中自由的ajax技术,其使用方法跟平常的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技术对于前后台之间的交互也是一种不错的方式,灵活运用会给我们带来巨大的帮助。当然也要根据不同的环境进行不同的设置与使用。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值