【发布时间】:2018-09-07 12:54:01
【问题描述】:
我正在使用 ASP.NET MVC 解决方案。我的问题是,当我将外部项目放入日历时,我想设置从我放置新记录的数据库中获取的 id。所以我所做的是在 fullcalendar 的 drop 事件中,传递记录拖动的数据,然后在服务器端,用控制器将信息插入数据库,然后用 json 将要更新的 id 传递给成功方法掉落的物品。我有很多。我找到了创建新事件的解决方案(我不会这样做),以及其他不起作用的解决方案。这是我的代码:
JQUERY
drop: function (date, jsEvent) {
var currentRow = $(this);
var Customer = currentRow.find("td:eq(0)").text();
var Sign = currentRow.find("td:eq(1)").text();
var Qta = currentRow.find("td:eq(2)").text();
var rowdata = {
'StartDate': date.format(),
'Customer': Customer,
'Sign': Sign,
'Qta': Qta
}
$.ajax({
type: 'post',
data: rowdata,
async: false,
url: "/Home/SaveEventDrop",
dataType: 'json',
success: function (response) {
NewID = response.id;
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
$(this).remove();
// HERE IS WHAT I WANT TO DO
this.id = NewID;
}
控制器
public ActionResult SaveEventDrop(string StartDate, string Customer, string Sign, string Qta)
{
SchedulerCalendar record = new SchedulerCalendar();
//Formating the data
Customer = Customer.Replace(System.Environment.NewLine, "").Trim();
Sign = Sign.Replace(System.Environment.NewLine, "").Trim();
Qta = Qta.Replace(System.Environment.NewLine, "").Trim();
float FloatQta = float.Parse(Qta, CultureInfo.InvariantCulture.NumberFormat);
record.customer = Customer;
record.sign = Sign;
record.qta = FloatQta;
record.startDate = DateTime.Parse(StartDate);
record.endDate = DateTime.Parse(StartDate);
db.schedulerCalendars.Add(record);
db.SaveChanges();
return Json(record);
}
所以如果有人可以让我了解如何在drop函数中获取drop的元素,以及如何更新id,我会非常感谢他!!!
谢谢
【问题讨论】:
-
this.id = NewID;可能在分配 NewID 之前设置。您是否检查过在成功调用 ajax 时分配的 NewID? ajax 是否按预期返回 ID?
-
我已经调试过了,ajax 正确返回了 ID,但是我不能把它放在日历的元素上。
-
我觉得问题是新掉的元素不是“this”,但是不知道是什么,怎么拿去改。
-
尝试改变这个 -> 成功:function (response) { NewID = response.id; }, 成功:函数(响应){ drop.NewID = response.id;}
-
我试过了,但是 javascript 中的异常说“删除它没有定义”
标签: javascript jquery ajax asp.net-mvc fullcalendar