Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表单提交不从控制器触发方法_C#_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

C# 表单提交不从控制器触发方法

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

我有一个用户列表,我将添加从中删除用户的功能,但使用我当前拥有的功能-表单没有执行它应该执行的操作:即从api控制器触发delete方法。我在页面上或控制台上没有收到任何错误,也不确定我可能做错了什么:

<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" );
    });
});