Jquery .ajax,成功选项中包含哪些内容?

Jquery .ajax,成功选项中包含哪些内容?,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我正在构建一个MVC,我正在尝试我的第一个ajax调用。它所做的只是向控制器操作方法发送一个int,该方法将一些数据保存到数据库,然后返回一个“成功保存”视图。我知道action方法是有效的,因为我有一个ActionLink用Get发送id,一切都很好。现在我需要切换到一个帖子,而ActionLinks不做帖子。所以我在尝试ajax 以下是我的ajax: $(document).ready(function () { $("#button-save").click(function (

我正在构建一个MVC,我正在尝试我的第一个ajax调用。它所做的只是向控制器操作方法发送一个int,该方法将一些数据保存到数据库,然后返回一个“成功保存”视图。我知道action方法是有效的,因为我有一个ActionLink用Get发送id,一切都很好。现在我需要切换到一个帖子,而ActionLinks不做帖子。所以我在尝试ajax

以下是我的ajax:

 $(document).ready(function () {
    $("#button-save").click(function () {
        var applicantId = $("#PersonModel_ApplicantID").val();

        $.ajax({
            url: '<%: Url.Action("SaveRecord") %>',
            data: { 'id': applicantId },
            type: "post"
        });
    });
});

因此,我想知道是否有一种方法可以告诉ajax(一旦它发送了ID,就不要碍事了,或者别的什么。谢谢。

成功部分是一个函数,当ajax成功完成时调用它。jQuery会将许多东西作为参数传入,包括响应

函数的定义是

Function( PlainObject data, String textStatus, jqXHR jqXHR )
所以你会

$.ajax({
    ...
    success: function(data, textStatus, jqXHR) {
        $("#SomeResultDiv").html(data); //Put the response in the div with Id "SomeResultDiv"
    }
});
data
对象将响应作为字符串包含

textStatus
非常简单。请求的Http状态的文本描述

jqXHR
是jQuery XmlHttpRequest对象,它是每个浏览器中使用的XmlHttpRequests的包装器。它提供了头、http响应代码等信息。有关详细信息,请参阅文档

如果不希望,可以从列表末尾省略参数

    success: function(data) {...}
这是完全正确的


请注意,您可以使用
$.json()
而不是
$.ajax()
调用返回Json对象的web方法。当您的服务器不知道如何格式化时,这些方法非常方便。例如,您有一台服务器,它只是将统计数据作为Json对象报告。您的Javascript可以加载该数据,然后根据需要创建div/graphs/等。在服务器端为您提供清晰的代码,将关注点分开(数据与格式)和许多其他优点。

成功部分是一个函数,在Ajax成功完成时调用。它将有许多东西作为参数由jQuery传递,包括响应

函数的定义是

Function( PlainObject data, String textStatus, jqXHR jqXHR )
所以你会

$.ajax({
    ...
    success: function(data, textStatus, jqXHR) {
        $("#SomeResultDiv").html(data); //Put the response in the div with Id "SomeResultDiv"
    }
});
data
对象将响应作为字符串包含

textStatus
非常简单。请求的Http状态的文本描述

jqXHR
是jQuery XmlHttpRequest对象,它是每个浏览器中使用的XmlHttpRequests的包装器。它提供了头、http响应代码等信息。有关详细信息,请参阅文档

如果不希望,可以从列表末尾省略参数

    success: function(data) {...}
这是完全正确的


请注意,您可以使用
$.json()
而不是
$.ajax()
调用返回Json对象的web方法。当您的服务器不知道如何格式化时,这些方法非常方便。例如,您有一台服务器,它只是将统计数据作为Json对象报告。您的Javascript可以加载该数据,然后根据需要创建div/graphs/等。在服务器端为您提供清晰的代码,将关注点分开(数据与格式)和许多其他优点。

下面是一个使用webmethod的简单邮件发送代码示例

[System.Web.Services.WebMethod]
public static int SendMail(string Name, string FromEmail, string Body)
{
    StringBuilder sbBody = new StringBuilder();
    string ToEmail = "goldramesh.cool@gmail.com";
    sbBody.Append(Name + ",");
    sbBody.Append("<br/>");
    sbBody.Append("<br/>");
    sbBody.Append(Body);
    Contact contact = new Contact();
    //string script = "alert('Message sent successfully');window.location ='Contact.aspx';";
    System.Net.Mail.MailMessage eMail = new System.Net.Mail.MailMessage();
    eMail.From = new System.Net.Mail.MailAddress(FromEmail);
    eMail.To.Add(ToEmail);
    eMail.Subject = "Contact from  " + FromEmail;
    eMail.IsBodyHtml = true;
    eMail.Body = Body;
    SmtpClient SMTP = new SmtpClient();
    SMTP.Send(eMail);
    eMail.Dispose();
    contact.Clear();
    return 1;
}
我的web方法是return1。因此我检查了数据。d==1


您可以看到我的示例方式……

下面是一个使用webmethod的简单邮件发送代码示例

[System.Web.Services.WebMethod]
public static int SendMail(string Name, string FromEmail, string Body)
{
    StringBuilder sbBody = new StringBuilder();
    string ToEmail = "goldramesh.cool@gmail.com";
    sbBody.Append(Name + ",");
    sbBody.Append("<br/>");
    sbBody.Append("<br/>");
    sbBody.Append(Body);
    Contact contact = new Contact();
    //string script = "alert('Message sent successfully');window.location ='Contact.aspx';";
    System.Net.Mail.MailMessage eMail = new System.Net.Mail.MailMessage();
    eMail.From = new System.Net.Mail.MailAddress(FromEmail);
    eMail.To.Add(ToEmail);
    eMail.Subject = "Contact from  " + FromEmail;
    eMail.IsBodyHtml = true;
    eMail.Body = Body;
    SmtpClient SMTP = new SmtpClient();
    SMTP.Send(eMail);
    eMail.Dispose();
    contact.Clear();
    return 1;
}
我的web方法是return1。因此我检查了数据。d==1


您可以查看我的示例方式的……

和查看for
success
属性,并查看for
success
property注意,您没有正确地转义要传递的数据-例如,如果名称包含逗号会怎么样?最好是:
data:JSON.Stringify({Name:Name,fromeail:fromeail,等等)})
是的。我是正确的。你为什么使用JSON.Stringify???我的示例代码对我来说工作正常。-你使用的是“传统”参数序列化,但你使用的是字符串连接。假设你的
名称
字段是
带有“inside
的内容,你的数据将是…'{Name:“带有“inside”的内容”,FromEmail:“abc@def.com“..”。请查看并注意,您没有正确地转义正在传递的数据-例如,如果名称包含逗号怎么办?最好是:
data:JSON.Stringify({Name:Name,FromEmail:FromEmail,等等…)
是的。我是正确的。你为什么使用JSON.Stringify???我的示例代码对我来说工作正常。-你使用的是“传统”参数序列化,但你使用的是字符串连接。假设你的
名称
字段是
带有“inside
的内容,你的数据将是…'{Name:“带有“inside”的内容”,FromEmail:“abc@def.com“…”。请参阅和