2013-11-28 153 views
0

我正在開發一個MVC應用程序,並試圖與我擁有的Web API控制器建立AJAX連接。唯一可能出現的錯誤是「Unidentified」。另外在我的API控制器刪除行動,我拋出一個隨機異常,所以我可以檢測,如果我成功進入該方法,但我沒有。Ajax調用ASP.NET MVC Web API

UPDATE:

好吧看來我幾乎忘了我的網址「removeFile」路線Ajax調用,但問題是,如果我添加一個「數據」屬性Ajax調用在我的序列化傳遞表單控件停止正常工作。

數據:$( 「#frmManipulate」)序列化()

Ajax調用:

$("#frmManipulate").submit(function() { 
     if (confirm("Are you sure you want to delete all selected files?")) { 
      if ($(this).data('clicked').is('[name="delete"]')) { 
       $.ajax({ 
        type: "DELETE", 
        url: "api/file/removeFile", 
        data: $("#frmManipulate").serialize() 
       }).complete(function ($data) { 
        alert("done"); 
       }); 
     } 
     return false; 
    }); 

的Web API控制器:

[RoutePrefix("api/file")] 
public class ManipulateController : ApiController 
{ 
    // GET api/<controller> 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

    // GET api/<controller>/5 
    public string Get(int id) 
    { 
     return "value"; 
    } 

    // POST api/<controller> 
    public void Post([FromBody]string value) 
    { 
    } 

    // PUT api/<controller>/5 
    public void Put(int id, [FromBody]string value) 
    { 
    } 

    [Route("removeFile")] 
    // DELETE api/<controller>/5 
    public void DeleteFile(string[] url) 
    { 
     foreach (var file in url) 
     { 
      throw new MarshalDirectiveException(); 
     } 
    } 
} 

回答

1

嘗試使DELETE請求沒有消息體。

+0

我試過了,但沒有奏效。無論哪種方式,我想通過我的表單控件。 – user3006019

+0

嘗試向控制器方法添加[HttpDelete]屬性,然後嘗試執行刪除請求 –

+0

DELETE不能有消息正文。 – Badri