码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET中JQuery+AJAX调用后台

时间:2016-03-26 07:06:36      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

    做订餐系统手机端时,遇到一个问题,实现登录功能时,我要调用后台的方法进行验证和判断。我们应用的是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技术对于前后台之间的交互也是一种不错的方式,灵活运用会给我们带来巨大的帮助。当然也要根据不同的环境进行不同的设置与使用。

ASP.NET中JQuery+AJAX调用后台

标签:

原文地址:http://blog.csdn.net/wpb92/article/details/50978625

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!