jQuery中的ajax如何调用ashx中的静态方法?
jQuery中的ajax://判断该标题是否已存在$("#txtTitle").live("change",function(){$.ajax({type:"Post",...
jQuery中的ajax:
//判断该标题是否已存在
$("#txtTitle").live("change", function () {
$.ajax({
type: "Post",
url: "AjaxServer.ashx/TitleExists",
data: "{'Title':'" + $(this).val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { //返回的数据用data.d获取内容
if (data.d != 0) {
$("#lblIsTitle").text("已存在!");
} else {
$("#lblIsTitle").text("");
}
}, error: function () {
alert("判断该标题是否已存在,操作失败");
}
});
});
AjaxServer.ashx.cs:
//根据Title,判断该标题是否已存在
[WebMethod]
public static int TitleExists(string Title)
{
return Convert.ToInt32(BLL.newsBLLClass.TitleExists(Title));
}
原先是ajax直接调用aspx.cs里的方法“public static int TitleExists(string Title)”,现改用ajax+ashx,结果不知道怎么调用咯。 展开
//判断该标题是否已存在
$("#txtTitle").live("change", function () {
$.ajax({
type: "Post",
url: "AjaxServer.ashx/TitleExists",
data: "{'Title':'" + $(this).val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { //返回的数据用data.d获取内容
if (data.d != 0) {
$("#lblIsTitle").text("已存在!");
} else {
$("#lblIsTitle").text("");
}
}, error: function () {
alert("判断该标题是否已存在,操作失败");
}
});
});
AjaxServer.ashx.cs:
//根据Title,判断该标题是否已存在
[WebMethod]
public static int TitleExists(string Title)
{
return Convert.ToInt32(BLL.newsBLLClass.TitleExists(Title));
}
原先是ajax直接调用aspx.cs里的方法“public static int TitleExists(string Title)”,现改用ajax+ashx,结果不知道怎么调用咯。 展开
5个回答
展开全部
ashx一般处理程序你可以直接在里面处理的,返回值就是 用context.Response.Write(写出一个json格式的数据);
请求这个路径 url: "AjaxServer.ashx/TitleExists" 修改成 url: "AjaxServer.ashx",就行
ashx里面这样写
if(context.Request["Title'"]!=null)
{
string titlestr=context.Request["Title"].ToString();
int result=TitleExists(titlestr);
context.Response.Write("{\"d\":\""+result+"\"}");
}
请求这个路径 url: "AjaxServer.ashx/TitleExists" 修改成 url: "AjaxServer.ashx",就行
ashx里面这样写
if(context.Request["Title'"]!=null)
{
string titlestr=context.Request["Title"].ToString();
int result=TitleExists(titlestr);
context.Response.Write("{\"d\":\""+result+"\"}");
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先 ,把请求这个路径 url: "AjaxServer.ashx/TitleExists" 修改成 url: "AjaxServer.ashx";
其次 ,把contentType: "application/json; charset=utf-8",这段代码删除掉!(AjaxServer.ashx.cs 就能接受到Title传过来的值)
最后,如果想在AjaxServer.ashx.cs 编写很多方法使用Switch语句
接受参数用 :context.Request[" "] ,返回值用:context.Response.Write( );
其次 ,把contentType: "application/json; charset=utf-8",这段代码删除掉!(AjaxServer.ashx.cs 就能接受到Title传过来的值)
最后,如果想在AjaxServer.ashx.cs 编写很多方法使用Switch语句
接受参数用 :context.Request[" "] ,返回值用:context.Response.Write( );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我写一个简单的例子,仅供参考:
$("#txtTitle").live("change", function () {
$.ajax({
type: "Post",
url: "AjaxServer.ashx",
data: "{'action':'getargs','Title':'" + $(this).val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { //返回的数据用data.d获取内容
if (data.d != 0) {
$("#lblIsTitle").text("已存在!");
} else {
$("#lblIsTitle").text("");
}
}, error: function () {
alert("判断该标题是否已存在,操作失败");
}
});
});
//-------------------------后台方法
public void GetParams()
{
string action=request[“action”].toString();//这里这样写不会,自己写
if(action="getargs")
{
//这里调用你写的方法
response.write(这里返回json对象);
response.end();
}
}
$("#txtTitle").live("change", function () {
$.ajax({
type: "Post",
url: "AjaxServer.ashx",
data: "{'action':'getargs','Title':'" + $(this).val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { //返回的数据用data.d获取内容
if (data.d != 0) {
$("#lblIsTitle").text("已存在!");
} else {
$("#lblIsTitle").text("");
}
}, error: function () {
alert("判断该标题是否已存在,操作失败");
}
});
});
//-------------------------后台方法
public void GetParams()
{
string action=request[“action”].toString();//这里这样写不会,自己写
if(action="getargs")
{
//这里调用你写的方法
response.write(这里返回json对象);
response.end();
}
}
追问
按你所说这样子:" string action= context.Request["action"].toString();"
执行程序会报错:“未将对象引用设置到对象的实例。”,大致是因为获取的context.Request["action"]=null,转换成string类型,结果会报错。
问题是:前台有传参数,怎么会出现“context.Request["action"]=null”?
追答
多半是这里有问题:data: "{'action':'getargs','Title':'" + $(this).val() + "'}",
你可以写成字符串的形式试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已经不需要再调静态方法了, ashx里的ProcessRequest方法里直接写上需要做什么的代码,或者根据不同参数调不同方法,然后直接Response.Write()出JSON,调用的那边就马上取到了JSON了
兄弟,你试一下后台通过Request.Form["action"]来取值看看
兄弟,你试一下后台通过Request.Form["action"]来取值看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询