我有一个用户列表,我将添加删除用户的功能,但是我现在拥有的东西 - 表单没有做它应该做的事情:那就是从api控制器触发删除方法。我没有在页面上或控制台中出现任何错误,也不确定我可能做错了什么:
<form data-submit-button="#userRemoveSubmit" id="userRemoveForm" action="/api/UserRemove/" class="ajax" method="delete" data-overview-id="@ViewBag.OverViewID" data-bind="attr: { 'data-user-id': ID(), 'data-type-id': TypeId() }">
.......
</form>
<a id="userRemoveSubmit" title="Remove User"><b>REMOVE</b></a>
控制器:
public HttpResponseMessage Delete(TypesList typeInfo)
{
........
}
TypeList Model:
public class TypesList
{
public int UserId { get; set; }
public int TypeId { get; set; }
public int? OverViewId { get; set; }
}
如何正确地将它们全部连接在一起,这样当我点击删除它时会触发控制器中的删除方法?
答案 0 :(得分:1)
问题在于表单标记中的action="delete"
。
浏览器通常只能对表单元素执行GET或POST (除非您使用AJAX提交)。
请查看此答案,以便查看解决方法: DELETE method not working
答案 1 :(得分:0)
您应该使用AJAX,并发送DELETE请求:
$('#userRemoveSubmit').click(function(e){
e.preventDefault(),
$.ajax({
url: '/api/UserRemove/',
type: 'DELETE',
data: { typeInfo : YOURVARIABLEHERE }
}).done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "complete" );
});
});