我不想在cs文件的pageload里面去判断什么request["***"] ==null之类的之后再去调用这个cs里的方法~
~上面这种方式能执行~没有问题~
~我想直接通过.ajax()方法直接调用标注为[webmethod]的后台方法但是断点始终不会跳到那个方法里面去~~
请各位帮帮忙~帮我看下环境:
windows 2003 vs2008 sp1 jquery1.4.2html:
<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 "用户名或密码错误!"; }}
~上面这种方式能执行~没有问题~
~我想直接通过.ajax()方法直接调用标注为[webmethod]的后台方法但是断点始终不会跳到那个方法里面去~~
请各位帮帮忙~帮我看下环境:
windows 2003 vs2008 sp1 jquery1.4.2html:
<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 "用户名或密码错误!"; }}
前面是页,后面是方法,只是,他这个不是Web服务,但是这么做的,有意思,用法创新了,
我等下也试试!如果改成ashx 这类的,肯定是可以的!断点不进去,只有两种可能:
一、地址错了
二、那个标记得WebMthod的页有问题!
{
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()+"'","");
if (userlist.Count > 0)
{
flag = 1;
}
return flag;
}
public bool IsReusable {
get {
return false;
}
}}
确定没进入方法体~只进入了page_load方法~
换成ashx肯定是可以的~~但是我也是在网上看到了cs后台的[webmethod]这种调用方式所以自己在测试~但是始终不成功~
试试去掉引号:data: { name:nametxt, pwd:pwdtxt}
参数传递 data:{...}里面也没错~~
我在cs里的pageload里面能通过request["name"]和request["pwd"]得到那两个参数的值~现在的问题是不能执行到标记为[WebMethod]的方法体里面去~~
看来实在不行只有用ashx或者在我原来的cs文件里面通过pageload里面的判断处理再
调用那个[WebMethod]的方法了~