2017-02-23 6 views
0

Ich bin auf der Suche nach der Möglichkeit, den Parameter von Ajax Request zu Web API Controller in ASP.Net Core wie query string in klassischen ASP zu übergeben. Ich habe unten versucht, aber es hat nicht funktioniert.Wie Parameter von Ajax Request zu Web API Controller übergeben?

Ausblick:

"ajax": 
    { 
     "url": "/api/APIDirectory/[email protected]" 
     "type": "POST", 
     "dataType": "JSON" 
    }, 

Controller:

[HttpPost] 
public IActionResult GetDirectoryInfo(string reqPath) 
{ 
    string requestPath = reqPath; 
    // some code here.. 
} 

Kann jemand bitte die Möglichkeiten zur Verfügung, dies zu erreichen in asp.net Kernbahn api raten?

+1

stellen Sie sicher, dass '@ ViewBag.Title' nicht leer ist. – Xyroid

Antwort

1
"ajax": 
{ 
    "url": "/api/APIDirectory/GetDirectoryInfo" 
    "type": "POST", 
    "dataType": "JSON", 
    "data": {"reqPath":"@ViewBag.Title"} 
} 

Edited: Wenn wir Query-String verwenden, können wir die Art verwenden als GET.

Aber wir verwenden POST-Methode, also müssen wir die Daten mit dem Parameter "Daten" übergeben.

+1

Während dieses Code-Snippet die Frage lösen kann, [hilft eine Erklärung] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, um die Qualität Ihres Posts zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. –

+1

Danke. Ich habe die Erklärung hinzugefügt. –

0

Wenn Daten in Query-String-Posting verwenden Sie den Inhaltstyp application/x-www-form-urlencoded

$.ajax({ 
    type: "POST", 
    url: "/api/APIDirectory/GetDirectoryInfo?reqPath=" + @ViewBag.Title, 
    contentType: "application/x-www-form-urlencoded" 
}); 

Stellen Sie außerdem sicher, dass die Ajax-Syntax korrekt ist (ich jQuery in meinem Beispiel) und dass der @ViewBag nicht in der Zeichenfolge enthalten ist.

Fügen Sie dann die [FromUri] Parameter in der Steuerung sicherstellen, dass die Bindung liest aus dem uri

[HttpPost] 
public IActionResult GetDirectoryInfo([FromUri]string reqPath) 
{ 
    string requestPath = reqPath; 
    // some code here.. 
} 
Verwandte Themen