如何以正确的方式在Asp.net中使用Jquery发布数据?
我使用Jquery在aspx中发布表单数据 我采用的方法是,我使一个页面具有表单,另一个aspx页面接收值,并在其页面加载中运行查询或其他逻辑 我使用的是jquery方法,但如果出现一些异常或问题,它就不会正确响应,预加载程序会继续工作 请告诉我在.Net中是否有任何支持的方式,这样我就可以正确地使用jquery$.ajax,或者我应该使用webservices或其他请告诉我的方式,或者我可以从jquery$.ajax调用c#函数后面的代码吗? 谢谢如何以正确的方式在Asp.net中使用Jquery发布数据?,jquery,.net,asp.net,Jquery,.net,Asp.net,我使用Jquery在aspx中发布表单数据 我采用的方法是,我使一个页面具有表单,另一个aspx页面接收值,并在其页面加载中运行查询或其他逻辑 我使用的是jquery方法,但如果出现一些异常或问题,它就不会正确响应,预加载程序会继续工作 请告诉我在.Net中是否有任何支持的方式,这样我就可以正确地使用jquery$.ajax,或者我应该使用webservices或其他请告诉我的方式,或者我可以从jquery$.ajax调用c#函数后面的代码吗? 谢谢 Atif不需要额外的页面。如果您真的想使用a
Atif不需要额外的页面。如果您真的想使用ajax,可以发布到ScriptMethod(http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx)在同一个班。这意味着你不需要把Aspx中涉及的所有其他东西都连接起来。这种方法是在Asp.Net中使用ajax的良好开端。不需要额外的页面。如果您真的想使用ajax,可以发布到ScriptMethod(http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx)在同一个班。这意味着你不需要把Aspx中涉及的所有其他东西都连接起来。此方法是在Asp.Net中使用ajax的良好开端。使用ajax的.apsx页面需要调用处理程序(.asxh)来获取值并对其进行处理 您可以将处理程序放在一个位置或与调用它的aspx页面相同的位置 ajax将检索值并将其发送给hanlder,在处理程序中处理数据,还可以在第一页将值传递回ajax (aspx页) (处理程序页)
使用制度;
使用System.Web;
公共类myHandler:IHttpHandler
{
公共void ProcessRequest(HttpContext上下文)
{
string strFname=string.empty;
string strLname=string.empty;
context.Response.ContentType=“应用程序/json”;
如果(!String.IsNullOrEmpty(context.Request.Form[“FirstName”]))
{
strFname=Convert.ToString(context.Request.Form[“FirstName”]);
}
如果(!String.IsNullOrEmpty(context.Request.Form[“LastName”]))
{
strLname=Convert.ToString(context.Request.Form[“LastName”]);
}
Write(HelloWorld(strFname,strLname));
}
公共布尔可重用
{
获取{return false;}
}
公共字符串HelloWorld(字符串fname,字符串lname)
{
return“你好,世界,我的名字是”+fname+”+lname;
}
}
使用ajax的.apsx页面需要调用处理程序(.asxh)来获取值并对其进行处理
您可以将处理程序放在一个位置或与调用它的aspx页面相同的位置
ajax将检索值并将其发送给hanlder,在处理程序中处理数据,还可以在第一页将值传递回ajax
(aspx页)
(处理程序页)
使用制度;
使用System.Web;
公共类myHandler:IHttpHandler
{
公共void ProcessRequest(HttpContext上下文)
{
string strFname=string.empty;
string strLname=string.empty;
context.Response.ContentType=“应用程序/json”;
如果(!String.IsNullOrEmpty(context.Request.Form[“FirstName”]))
{
strFname=Convert.ToString(context.Request.Form[“FirstName”]);
}
如果(!String.IsNullOrEmpty(context.Request.Form[“LastName”]))
{
strLname=Convert.ToString(context.Request.Form[“LastName”]);
}
Write(HelloWorld(strFname,strLname));
}
公共布尔可重用
{
获取{return false;}
}
公共字符串HelloWorld(字符串fname,字符串lname)
{
return“你好,世界,我的名字是”+fname+”+lname;
}
}
jQuery的$.ajax()
函数接受一个错误参数,如果请求因任何原因失败,将调用该参数
$.ajax({
url: "someCommand.aspx",
type: "POST",
data: $("#myForm").serialize(),
success: function(data){
// display your data
},
error: funciton(){
// handle error some way
}
});
或者,如果需要具体说明,您可以处理单个错误,例如404,如下所示:
$.ajax({
url: "someCommand.aspx",
type: "POST",
data: $("#myForm").serialize(),
success: function(data){
// display your data
},
statusCode: {
404: function() {
alert('page not found');
}
}
});
幸运的是,DavejQuery的$.ajax()
函数接受一个错误参数,如果请求因任何原因失败,将调用该参数
$.ajax({
url: "someCommand.aspx",
type: "POST",
data: $("#myForm").serialize(),
success: function(data){
// display your data
},
error: funciton(){
// handle error some way
}
});
//the data you want to post
var dataObject = JSON.stringify(reqObject); /// to use this you need json plugin link is posted below
//Call the page method
$.ajax({
async: false,
type: "POST",
url: youraspxPage + "/" + your code behind function name,
contentType: "application/json;",
data: dataObject,
dataType: "json",
success: ajaxCallSuccess,
error: ajaxCallFailure
});
function ajaxCallSuccess(response) {
var msg1 = response.d;
}
function ajaxCallFailure(response) {
var msg2 = response.d;
}
或者,如果需要具体说明,您可以处理单个错误,例如404,如下所示:
$.ajax({
url: "someCommand.aspx",
type: "POST",
data: $("#myForm").serialize(),
success: function(data){
// display your data
},
statusCode: {
404: function() {
alert('page not found');
}
}
});
祝你好运,戴夫
//the data you want to post
var dataObject = JSON.stringify(reqObject); /// to use this you need json plugin link is posted below
//Call the page method
$.ajax({
async: false,
type: "POST",
url: youraspxPage + "/" + your code behind function name,
contentType: "application/json;",
data: dataObject,
dataType: "json",
success: ajaxCallSuccess,
error: ajaxCallFailure
});
function ajaxCallSuccess(response) {
var msg1 = response.d;
}
function ajaxCallFailure(response) {
var msg2 = response.d;
}
试试这个让我知道它是否有效
试试这个让我知道它是否有效
与jquery$.ajax相比,asp.net的ajax速度非常慢,asp.net ajax不刷新页面,而是在后面运行整个c#文件。asp.net的ajax速度与jquery$.ajax相比非常慢,asp.net ajax不刷新页面,而是在后面运行整个c#文件。这是jquery的唯一方法吗,我已经使用过了,但是如果出现异常,那么这就不起作用了,我还想知道接收代码是否可以像代码隐藏文件中一样提供一些智能感知。如果出现异常,您可以在
error
回调中捕获它,即:error:function(){alert('另一端的aspx页面抛出异常');}
这是jquery的唯一方法吗,我已经使用过了,但是如果发生了异常,那么这就不起作用了,我还想知道接收代码是否可以提供一些智能感知,就像它在代码隐藏文件中提供的一样。如果发生异常,可以在error
回调中捕获它,即:error:function(){alert]('aspx页面在另一端抛出了一个异常');}
我是这样写的,它不工作,请检查$.ajax({async:false,type:POST,url:Schedular.aspx/check),contentType:application/json;“,data:dataObject,dataType:json”,成功:ajaxCallSuccess,错误:ajaxCallFailure});您要发布到的方法是web方法吗?