html如何通过AJAX等方法将数据提交到ASPX页面?

目前aspx页面已经可以正常连接和验证密码正确性:

img


img

html的表单中,已经添加了输入控件和确认登录控件:

img


img

那么要怎样才能实现HTML到ASPX的提交功能和验证返回功能呢?

题主用的服务器端控件来获取值,最好是用微软自带ajax控件如UpdatePanel+ScriptManager,不能用jquery之类等第三方类库发送数据,因为asp.net有viewstate,用jquery等ajax控件发送数据,用服务器端xxxText获取数据获取不到,没有发送viewstate。除非改为Request来获取数据,而不是xxx.Text来获取
用第三方ajax类库可以参考下面的
aspx的cs文件Page_Load改下面这样


    protected void Page_Load(object sender, EventArgs e)
    {
        string username = Request.Form["username"],password = Request.Form["username"];//注意数据获取方式,不能用xxx.Text来获取,没有viewstate状态数据获取不到客户端改变的值
        if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password)) {
            /*Model.User user = new Model.User();
            user.Username = username;
            user.Password = password;*/
            //上面user变量没使用,完全没必要要
            string s = BLL.User.UserLogin(username, password);//存储验证结果,要不出错又验证一次浪费数据库资源
            Response.Write(s);//直接输出内容即可,不需要做掐操作
            Response.End();/////////////////////////////结束其他内容输出,这个是大头
        }
    }

html和js代码改下面,注意导入jquery框架,js代码放到js文件中,可能有缓存,需要清理下浏览器缓存


<!--导入jquery-->
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script>
    function userLogin() {
        var username = $('#username').val();
        var password = $('#password').val();
        $.ajax({
            url: 'userlogin.aspx',
            type: 'POST',//POST发送数据,服务器端用Request.Form获取
            data: {
                username: username,
                password: password
            },
            complete: function (xhr) {
                var s = xhr.responseText;
                alert('服务器端返回内容\n' + s);//这里改为需要的操作,比如判断s内容为登录成功跳转什么的,如下
                if (s == '登录成功') location ='/userhome/'//登录成功跳转到用户后台或者首页什么的
            }
        })
    }
</script>

UpdatePanel+ScriptManager可以参考下面的文章

用ajax 提交 值 。然后返回 提交结果 。
ajax 语法 百度一下就有


浅析JS中的AJAX - 知乎 前言如果仔细观察一个Form的提交,你就会发现,一旦用户点击“Submit”按钮,表单开始提交,浏览器就会刷新页面,然后在新页面里告诉你操作是成功了还是失败了。如果不幸由于网络太慢或者其他原因,就会得到一个40… https://zhuanlan.zhihu.com/p/206544684

img

直接请求你这个服务页面就可以了 localhost:44369/UserLogin.aspx

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632