我能够成功调用 Backbone 的 HTTP POST 和 PUT 方法,并使用 Asp.Net MVC 将它们链接到我的服务器。
问题是,当我使用 model.destroy() 调用 HTTP DELETE 时,我收到此错误...
参数字典包含“GSASF.Controllers.AdminController”中方法“System.Web.Mvc.ActionResult Delete(Int32)”的不可空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
就在我调用 model.destroy() 之前,我将 id 记录到控制台并且它是正确的。这是我的代码。*请注意,我的模型没有一个名为 id 的字段,而是一个名为 HoverId 的字段。数据库表已经存在,所以我必须到期。
Delete: function(id) {
if (id) {
for (var i = this.collection.length - 1; i >= 0; i--) {
var item = this.collection.at(i);
if (item.get("HoverId") == id)
alert("Item to be destroyed ID: " + item.get("id"));
item.destroy();
};
}
[ActionName("SpaceToolTipEdit")]
[HttpDelete]
public ActionResult Delete(int id)
{
var imageHover = sr.GetImageHoverById(id);
if (imageHover != null)
{
sr.DeleteImageHover(imageHover);
return new HttpStatusCodeResult(200);
}
return new EmptyResult();
}