当我尝试使用DELETE动词时,我得到一个空参数或控制器不会触发。删除不能使用Web Api
首先我尝试这样做:
[HttpDelete]
public IHttpActionResult Delete(Announcement announcement) {
_unitOfWork.Announcements.Remove(announcement);
_unitOfWork.Complete();
return Ok();
}
控制器火灾,但announcement
是null
。如果我检查客户端的参数不是null,它是一个正确形成的对象。
如果我添加下面的Route
属性,那么控制器根本不会触发。
[HttpDelete]
[Route("api/announcements/{announcement}")]
public IHttpActionResult Delete(Announcement announcement) {
_unitOfWork.Announcements.Remove(announcement);
_unitOfWork.Complete();
return Ok();
}
客户端侧被发起经由角的DELETE
。
myAPIservice.DeleteAnnouncement = function (announcement) {
console.log('In myAPIservice DeleteAnnouncement');
console.log(announcement);
return $http.delete(serviceURLRoot + 'api/announcements/', announcement, { withCredentials: true }).success(function (data) {
console.log('myAPIservice.DeleteAnnouncement Success');
});
};
编辑---
公告类:
public class Announcement {
public int AnnouncementId { get; set; }
public string AnnouncementText { get; set; }
}
'Announcement'类是什么样的? – PzYon
@PzYon更新了公告类定义的问题。 – Legion
公告的形状是无关紧要的我很害怕 - 看到我的回答 – Alex