我正在使用Jquery在aspx中发布表单数据。
我采用的方式是,我创建一个页面的表单和另一个aspx页面,我接收值,在其page_load中运行查询或其他逻辑。
我正在使用$.ajax jquery方法,但是如果发生某些异常或问题,它就无法正确响应并且预加载器继续工作。
请告诉我.Net中是否有任何支持方式,所以我可以正确使用这个jquery $ .ajax,或者我应该使用webservices或其他任何请让我知道,或者我可以调用c#函数后面的代码来自jquery $ .ajax? 谢谢 与Atif
答案 0 :(得分:1)
//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;
}
尝试这个让我知道它是否有效......
答案 1 :(得分:0)
额外的页面是不必要的。如果您想真正做ajax,可以在同一个类中发布ScriptMethod(http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx)。这意味着您不需要连接所有与Aspx相关的其他内容。这种方法是在Asp.Net中进行ajax的良好开端。
答案 2 :(得分:0)
您可以将处理程序放在一个位置或与调用它的aspx页面相同的位置
ajax将检索值并将其发送到hanlder,在处理数据的处理程序中,也可以将值传递给第一页上的ajax
(aspx页面)
//Call the page method
$.ajax({
type: "POST",
url: myHandler.ashx,
contentType: "application/json;",
data: dataObject,
dataType: "json",
success: ajaxCallSuccess,
error: ajaxCallFailure
});
(处理程序页面)
<%@ WebHandler Language="C#" Class="myHandler" %>
using System;
using System.Web;
public class myHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string strFname = string.empty;
string strLname = string.empty;
context.Response.ContentType = "application/json";
if (!String.IsNullOrEmpty(context.Request.Form["FirstName"]))
{
strFname= Convert.ToString(context.Request.Form["FirstName"]);
}
if (!String.IsNullOrEmpty(context.Request.Form["LastName"]))
{
strLname = Convert.ToString(context.Request.Form["LastName"]);
}
context.Response.Write(HelloWorld(strFname, strLname));
}
public bool IsReusable
{
get { return false; }
}
public string HelloWorld(string fname, string lname)
{
return "Hello World, my name is " + fname + " " + lname;
}
}
答案 3 :(得分:0)
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');
}
}
});
最好的运气,戴夫