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

  • 相关阅读:
    wordpress (net::ERR_TOO_MANY_REDIRECTS):重定向过多。
    Windows2003 IIS6完美实现WordPress伪静态的方法
    显示当前时间
    禁止搜索引擎收录的几种方法(全)
    MSClass 的使用(Class Of Marquee Scroll通用不间断滚动JS封装类)
    go to Top 返回顶部 例子
    电机位置和速度信号检测电路
    matlab polyfit 多项式拟合 (转自 百科)
    matlab contour
    DTC学习
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253757.html
Copyright © 2020-2023  润新知