>我有一个带有表单的页面,当用户提交表单时,会发生两件事 1( 它应该
发送电子邮件(这部分工作正常(和
2( 它还应该将数据/记录插入数据库,但这部分不起作用,它无法将数据插入数据库。
3(据我了解,控制器和AJAX都在工作,直到它来发送电子邮件。不会了。
我尝试了第 2 部分的事情,首先我调试了我的 控制器和我可以看到模型包含数据。
我还检查 浏览器中的控制台,没有错误
我在控制器或 AJAX 中错过了什么吗?! 谁能指出我正确的方向?!
控制器:
[HttpPost]
public JsonResult ProcessRequestRMA(string kundenavn, string ordrenummer , string send)
{
if (send == "send")
{
var SubjectOne = "RMAAJAX";
var SendToPrint = "someemal@email.com";
var errorMessage = "";
try
{
// Initialize WebMail helper
WebMail.SmtpServer = "smtp.";
WebMail.SmtpPort = 25;
WebMail.UserName = "someemal@email.com";
WebMail.Password = "";
WebMail.From = "someemal@email.com";
WebMail.EnableSsl = true;
WebMail.SmtpUseDefaultCredentials = false;
// Send email
WebMail.Send(to: SendToPrint,
subject: SubjectOne,
body: "Kundenavn" + kundenavn + "<br>" + "ordernummer" + ordrenummer + "<br>"
);
}
catch (Exception ex)
{
errorMessage = ex.Message;
}
if (ModelState.IsValid)
{
db.RMA_History.Add(new RMA_History
{
Kundenavn = kundenavn,
Ordrenummer = ordrenummer
});
db.SaveChanges();
}
}
return Json(new RMA_History {Kundenavn=kundenavn , Ordrenummer=ordrenummer }, JsonRequestBehavior.AllowGet);
}
阿贾克斯:
<form id="RMAForm">
<input name="Ordrenummer" id="Ordrenummer" type="text" >
<input name="Kundenavn" id="Kundenavn" type="text" >
<button id="btn" type="submit">Send</button>
</form>
<script>
$(document).ready(function () {
$("#btn").click(function (e) {
e.preventDefault();
var kundenavn = $("#Kundenavn").val();
var ordrenummer = $("#Ordrenummer").val();
$.ajax({
type: 'POST',
url: "/Account/ProcessRequestRMA",
dataType: 'json',
data: {
send:"send",
kundenavn: kundenavn,
ordrenummer: ordrenummer,
},
success: function (status) {
if (!$.trim(status)) {
alert("What follows is blank: ");
}
else {
status.Kundenavn = kundenavn;
status.Ordrenummer = ordrenummer;
}
},
error: function () {
console.log('something went wrong - debug it!');
}
});
});
});
</script>
看看这个例子:
$.ajax({
url: "url",
type : "POST",
async: false,
contentType: "application/json",
//dataType: "json",
data : { firstDate : monday,
secondDate : lastday}
//student_name : $('#id_student_name').val()
}).then(function(data) {
var obj = JSON.parse(data);
for (var a = 0; a < obj.results.length; a++) {
res[a] = obj.results[a];
dates.push(obj.results[a].DATESTART);
}
console.log(res);
});
首先,您应该为返回 json 创建一个新类。不应将实体对象返回到 ajax 请求。
例如:
public class RmaHistoryJson
{
public string Kundenavn { get; set; }
public string Ordrenummer { get; set; }
}
那么数据库插入过程的错误细节是什么?