2016-08-05 17 views
2

Ich habe diese Ajax-Aufruf hier:jQuery Ajax-Aufruf zu ASP.NET Aufruf falsche Methode

$.ajax({ 
        type: "GET", 
        url: "/api/action/deleteData?issueID=16", 
        success: function (data) { 
         console.log(data) 
        }, 
        failure: function (errMsg) { 
         alert('Failed, somthing went wrong, please try again!'); 
        } 
       }); 

, die diese Methode

public string deleteData(string issueID) 
    { 
     return "aaa"; 
    } 

jedoch zu nennen versucht ist dies die falsche Methode aufrufen, es ruft eine Methode ohne Parameter auf. Warum macht es das und wie kann ich das beheben?

Die Aktion ist korrekt oder sonst würde es nicht in die andere Methode gehen.

Wenn ich manuell versuche, diese Methode mit der URL aufzurufen, gibt sie die Daten von der falschen Methode zurück. Ich verstehe es nicht.

+0

das ist asp.net Webformulare? oder MVC? – pyroglass

+0

Dies ist asp.net MVC – user979331

+0

"Es gibt die Daten von der falschen Methode" Welche Methode wird aufgerufen/Daten zurückgeben? möglicherweise liegt ein Problem vor, wenn MVC die Route nicht richtig liest – pyroglass

Antwort

4

Bewerben [ActionName("deleteData")] auf Ihre Web-API Aktion und es wird work.I auf meiner Seite getestet nachgeführt hilft und es funktioniert perfectly.Below meine ApiController ist:

public class actionController : ApiController 
{ 
    public string deleteData() 
    { 
     return "deleteData"; 
    } 

    public string doSomething() 
    { 
     return "doSomething"; 
    } 

    [ActionName("deleteData")] 
    [HttpGet] 
    public string deleteData(string issueID) 
    { 
     return "aaa"; 
    } 
} 
0

Ich bin mir nicht sicher, ob die Art, wie Sie Ihren Parameter übergeben, korrekt ist. Ich neige dazu, immer die Dateneigenschaft des Ajax-Aufrufs zu verwenden, um meinen Parameter zu übergeben.

$.ajax({ 
       type: "GET", 
       url: "/api/action/deleteData", 
       data: ({ issueID: 16 }), 
       success: function (data) { 
        console.log(data) 
       }, 
       failure: function (errMsg) { 
        alert('Failed, somthing went wrong, please try again!'); 
       } 
      }); 

Hoffe, dass es

+0

Nein, das hat nichts getan – user979331

+0

Hum Ich wundere mich, ob es ist, weil Sie eine API verwenden. Haben Sie Folgendes versucht: URL: "/ api/action/deleteData/16" – vegas2033

+0

API, Webservices und reguläre MVC-Methoden nehmen Parameter unterschiedlich – vegas2033