0

我能够成功调用 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();
        }
4

1 回答 1

1

好吧,我现在感觉很笨。

解决方案很简单。我最初将 url 属性设置为我的 /{Controller}/{SpaceToolTipEdit} url。我应该将其设置为 urlRoot 属性。

于 2013-04-08T18:09:37.460 回答