gpt4 book ai didi

javascript - 如何使用 AJAX 发送 POST 数据?以及如何在 Web API 中获取 POST 数据?

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:53 25 4
gpt4 key购买 nike

在我的 MVC 项目中,我必须将 HTML 表格作为电子邮件发送给客户。

我应该调用 Web API 上的电子邮件函数:

public class FunctionsController : ApiController
{
[HttpPost]
[Route("{controller}/email")]
public void SendEmail(string to, string from, string body, string subject, string bcc)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "xxxx";
MailMessage mailMessage = new MailMessage();

mailMessage.IsBodyHtml = true;
mailMessage.Body = body;
mailMessage.Subject = subject;
mailMessage.From = new MailAddress(from);
mailMessage.To.Add(new MailAddress(to));
mailMessage.Bcc.Add(new MailAddress(bcc));

smtpClient.Send(mailMessage);
}

我不知道该怎么做。

这是我的 MVC 项目上的 sendEmail javascript 函数(使用 Knockout):

   self.sendEmail = function (to, from, body, subject, bcc) {
$.ajax({
url: "../API/functions/email",
type: "POST",
data: {
'to': to,
'from': from,
'body': body,
'subject': subject,
'bcc' : bcc
},
contentType: "application/json",
success: function (data) {
console.log(ko.toJSON(data));
}
});
}

我应该如何在 Web API 中获取 POST 数据?我的 javascript 函数是否正确?

提前致谢。

最佳答案

制作模型/ View 模型总是更好的做法。

public class EmailViewModel
{
public string Body { get; set; }
public string Subject { get; set; }
public string From { get; set; }
public string To { get; set; }
public string Bcc { get; set; }
}

现在 Controller 方法将是这样的:

 public void SendEmail(EmailViewModel email)
{
.......
}

ajax 调用如下:

 var email={
'Body': body,
'Subject': subject ,
'From': from,
'To': to,
'Bcc': ''
};
$.ajax({
url: "../xxx/functions/email/",
type: "POST",
data: email,
contentType: "application/json",
success: function (data) {
callback(data);
}
});

希望这会有所帮助:)

关于javascript - 如何使用 AJAX 发送 POST 数据?以及如何在 Web API 中获取 POST 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36006334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com