【发布时间】:2017-08-05 11:08:52
【问题描述】:
我有以下 JSON Ajax 调用:
$.ajax({
url: '@Url.Action("AddOrUpdateTimeEntry", "TimeEntries")',
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json",
data: payload,
success: function (data) {
var id = data.TimeEntryID;
$(this).parent().parent().parent().attr('id', id);
}
error: alert("Error Saving Data - changes not saved to database")
});
调用这个函数:
public ActionResult AddOrUpdateTimeEntry(TimeEntryData ted)
{
int rowId = Convert.ToInt16(ted.RowId.Split('_')[1]);
// If RowId = 0, it's a new row so create, otherwise update
bool IsNewRow = rowId == 0;
int hours = ted.Hours;
TimeEntry te;
if (IsNewRow)
{
te = new TimeEntry();
te.ClientID = ted.ClientID;
te.TaskTypeID = ted.TaskTypeID;
}
else
{
te = (from t in db.TimeEntries
where t.TimeEntryID == rowId
select t).FirstOrDefault();
}
switch (ted.DayOfWeek)
{
case "Mon":
te.MonHours = hours;
break;
...
}
if (IsNewRow) // New row, so create a new entry in database
{
db.TimeEntries.Add(te);
}
db.SaveChanges();
var id = te.TimeEntryID;
return Json(new { TimeEntryID = id });
}
该功能有效,因为数据库已正确更新,但error: 功能:
error: alert("Error Saving Data - changes not saved to database");
总是被解雇。 (我假设根据success: 函数,行 id 也没有更新。)
【问题讨论】:
-
尝试将try catch块放入后端代码中,看看是否有任何错误发生。