C# 表单提交不从控制器触发方法
我有一个用户列表,我将添加从中删除用户的功能,但使用我当前拥有的功能-表单没有执行它应该执行的操作:即从api控制器触发delete方法。我在页面上或控制台上没有收到任何错误,也不确定我可能做错了什么:C# 表单提交不从控制器触发方法,c#,javascript,jquery,asp.net-mvc,C#,Javascript,Jquery,Asp.net Mvc,我有一个用户列表,我将添加从中删除用户的功能,但使用我当前拥有的功能-表单没有执行它应该执行的操作:即从api控制器触发delete方法。我在页面上或控制台上没有收到任何错误,也不确定我可能做错了什么: <form data-submit-button="#userRemoveSubmit" id="userRemoveForm" action="/api/UserRemove/" class="ajax" method="delete" data-overview-id="@View
<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 class TypesList
{
public int UserId { get; set; }
public int TypeId { get; set; }
public int? OverViewId { get; set; }
}
如何正确地将它们连接在一起,以便在单击“删除”时触发控制器中的删除方法?问题在于表单标记中的th
action=“delete”
浏览器通常只能对表单元素执行GET或POST
(除非您使用AJAX提交)
请查看此答案,以便了解解决方法:
您应该使用AJAX,并发送删除请求:
$('#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" );
});
});
ref:我会继续尝试,但我想知道我是否正确地传递了我的参数?更新,因为您通常会传递一个值给您删除Web Api。还包括
e.preventDefault()
,这将阻止表单提交。
$('#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" );
});
});