我有一个表单页面,当用户提交表单时,会发生两件事情
1)它应该发送一封电子邮件(这部分工作正常)和
2)它还应该将数据/记录插入数据库,但这部分不起作用,不能将数据插入数据库
3)据我所知,Controller& AJAX一直在努力发送电子邮件。不再。
我为第2部分尝试的东西,首先我调试了我的 控制器,我可以看到模型包含数据。
我也检查 浏览器中的控制台没有错误
我是否错过了Controller或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);
}
AJAX:
<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>
答案 0 :(得分:0)
看看这个例子:
class MySwitchListTilesContainer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[800],
body: ListView(
children: List.generate(20, (i)=>MySwitchListTile(
)),
),
);
}
}
class MySwitchListTile extends StatefulWidget {
@override
_MySwitchListTileState createState() => new _MySwitchListTileState();
}
class _MySwitchListTileState extends State<MySwitchListTile> {
bool _v = false;
@override
Widget build(BuildContext context) {
return SwitchListTile(
value:_v,
onChanged: (value)=>setState((){
_v=value;
}),
);
}
}
答案 1 :(得分:0)
首先,你应该为return json创建一个新类。你不应该将实体对象返回给ajax请求。
例如:
public class RmaHistoryJson
{
public string Kundenavn { get; set; }
public string Ordrenummer { get; set; }
}
那么数据库插入过程的错误细节是什么?