在我的WebAPI asp.net mvc控制器删除方法中,名为contact的传入对象即将出现。我已经检查了我的代码,我无法找出根本原因。我的编辑操作以非常类似的方式成功运行。
那么是什么导致webapi asp.net方法中的联系对象参数以空值形式出现?
我已经如图所示检查了角度控制器内的接触对象在传递给webapi删除方法之前不是null。
Here is my rest of the code
<div data-ng-controller="ContactDeleteController">
<form name ="deleteContact" data-ng-submit="saveDeleteContact()">
<div>
<label>First Name: </label>
<input required type="text" placeholder="Enter First Name" data-ng-model="contact.FirstName"/>
</div>
<div>
<label>Last Name: </label>
<input required type="text" placeholder="Enter Last Name" data-ng-model="contact.LastName"/>
</div>
<div>
<label>Email Address: </label>
<input required type="text" placeholder="Enter Email Address" data-ng-model="contact.EmailAddress"/>
</div>
<div>
<label>Cell Phone Number: </label>
<input required type="text" placeholder="Enter Phone Number" data-ng-model="contact.PhoneNumber"/>
</div>
<div></div>
<div>
<button class="btn btn-primary" type="submit">Delete</button>
</div>
</form>
</div>
var ContactDeleteController = function ($scope, $http, $location) {
var contactId = $location.absUrl().match(/\/Delete\/(.*)/)[1];
$http.get("/api/ContactWeb/" + contactId)
.then(function (response) {
$scope.contact = response.data;
});
$scope.saveDeleteContact = function () {
var con = $scope.contact;
$http.delete("/api/ContactWeb", con)
.then(function (response) {
$scope.contact = response.data;
});
window.location = "/Contact/Index";
};
};
答案 0 :(得分:8)
HTTP不允许DELETE与body。尝试在URI(查询字符串等)中发送参数,并在Web API中使用Contact
将数据绑定到复杂类型[FromUri]
。
答案 1 :(得分:3)
只需在您的请求中将实体的ID发送到服务器,您就不需要在正文中包含任何数据。 现在在服务器上,您可以删除具有该ID的实体。