2014-01-30 38 views
0

我有一個用戶列表,我將添加刪除用戶的能力,但與我目前有什麼 - 表單沒有做它應該做的事情:那就是觸發從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型號:

public class TypesList 
{ 
    public int UserId { get; set; } 
    public int TypeId { get; set; } 
    public int? OverViewId { get; set; } 
} 

如何我可以正確地讓他們全部連接在一起,以便當我點擊刪除它觸發控制器中的刪除方法?

回答

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

裁判:http://api.jquery.com/jquery.ajax/

+0

我會繼續嘗試,但我想知道我是否正確地傳遞了我的參數? – user3244544

+0

已更新,因爲通常將值傳遞給您DELETE Web Api。還包括'e.preventDefault()',它將阻止表單提交。 –

1

問題是表格標記中的action="delete"

瀏覽器通常只能對錶單元素 執行GET或POST(除非您使用AJAX提交)。

請看看這個答案,所以你可以看到一個解決辦法: DELETE method not working

相關問題