我不想在cs文件的pageload里面去判断什么request["***"] ==null之类的之后再去调用这个cs里的方法~
~上面这种方式能执行~没有问题~
~我想直接通过.ajax()方法直接调用标注为[webmethod]的后台方法但是断点始终不会跳到那个方法里面去~~
请各位帮帮忙~帮我看下
环境:
windows 2003 vs2008 sp1 jquery1.4.2
html:
<script language="javascript" type="text/javascript">
function logon() {
var nametxt = $("#name").val();
nametxt = $.trim(nametxt);
var pwdtxt = $("#pwd").val();
pwdtxt = $.trim(pwdtxt);
$.ajax({ type: "post", url: "Login.aspx/UserLogin", data: { "name":nametxt, "pwd":pwdtxt}, dataType: "text", success: function(txt) {
alert(txt);
}
});
tb_remove();
}
</script>
<input type="button" onclick="logon();" value="登录" />
Login.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public string UserLogin(string name, string pwd)
{
if (name == "123" && pwd == "123") return "success";
else return "用户名或密码错误!";
}
}
------解决方案--------------------------------------------------------
jq这个方法没用过!偶还是用原始的httpRequest
哎 out 了
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
楼主可以将WebMethod换成一般处理程序(ashx)试试看
------解决方案--------------------------------------------------------
function Tip(data)
{
if(data=='0')
{
}
else
{
alert("用户名不可用,请尝试其他名称");
document.getElementById("useraccount").value="";
}
}
$(document).ready(function(){
$("#useraccount").blur(function(){
if(validateUserName()==false)
{
}
else
{
var name = $("#useraccount").val();
$.ajax({
type:"POST",
url:"CheckUserName.ashx",
data:{username:name},
success:Tip
})
}
})
})
后台代码:
<%@ WebHandler Language="C#" Class="CheckUserName" %>
using System;
using System.Web;
using System.Collections.Generic;
public class CheckUserName : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string username = context.Request.Params["username"].ToString();
int flag = Check(username);
context.Response.Write(flag.ToString());
}
public int Check(string name)
{
int flag = 0;
List<YD.Model.F_RedistUser> userlist = new YD.BLL.F_RedistUser().GetList("*", "ispass=0 and uid='"+name.Trim()+"'","");