目前aspx页面已经可以正常连接和验证密码正确性:
html的表单中,已经添加了输入控件和确认登录控件:
那么要怎样才能实现HTML到ASPX的提交功能和验证返回功能呢?
目前aspx页面已经可以正常连接和验证密码正确性:
html的表单中,已经添加了输入控件和确认登录控件:
那么要怎样才能实现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>