Also im Wesentlichen, ich baue eine Web-API, und ich versuche, Ajax zu verwenden, um einen Web-Service abzufragen, der zwei Argumente akzeptiert. Ich muss eine Liste von Stichen (SSNs) übergeben und ich muss eine einzelne Zeichenfolge übergeben, um zu bestimmen, welche Umgebung es abfragt. ("a" für die Akzeptanz und "i" für die Integration).Mehrere Parameter in Ajax Call mit Razor übergeben
Ich benutze cshtml mit Rasierer. Und bis jetzt gibt mir dieser Abschnitt erfolgreich, was ich von den divs will.
var pInputSssns = document.GetElementById(“SSNinput”).value;
var pTestRegion = document.GetElementById(“testRegion’).value;
Allerdings knapp darunter. Ich versuche, diese beiden Parameter in einen Ajax-Aufruf einzufügen.
$.ajax({
type: 'GET',
contentType: "application/json; charset=utf-8"
url: "myurl",
data:"{}",
success: function (data) {
// populate a table
}
});
Ich habe mehrere Meinungen darüber gehört, wie das gemacht werden kann. Kann ich sie beide als JSON serialisieren und dann zwei JSON-Objekte in den Datenparameter einfügen? Ich habe auch gehört, dass ich ein cis-Objekt übergeben kann, aber wenn ich das versuche, kann ich nicht auf die html-Variable zugreifen, während ich im Razor-Code bin.
@{ AjaxParam ap = new AjaxParam(); ap.pInputSsns = pInputSsns;}
Gibt es eine gute Möglichkeit, beide dort drin zu übergeben? Als Referenz, hier ist der Controller:
[ScriptMethod (ResponseFormat = Response Format.Json)]
[System.Web.Http.HttpGet]
public JArray GetSSNAssociations([FromUri] List <string> pInputSsns, string pTestRegion)
{
\\ do something
}
Schätzen Sie es alle.
Ok, das scheint vernünftig danke! Ich werde mir auch die von Ihnen bereitgestellten Links ansehen müssen. Meine Route ist ein 'GET', kein 'POST', aber ich denke nicht, dass das wichtig sein sollte ...? meine einzige Frage ist, was passiert mit "Var-Modell" in Ihrem dritten Codeblock. Ich bin nicht schwer, diese Werte zu codieren. Ein bisschen verwirrt darüber, was dort passiert. – Josh
Ich habe nur die Werte hart codiert. Sie können es von Ihren Dom-Elementen lesen und die gleiche Struktur aufbauen. Außerdem sollten Sie die Verwendung von "post als get" in Betracht ziehen, da dies möglicherweise nicht für komplexe Daten funktioniert. – Shyju
Also ich denke, dass dies mein Problem gelöst hat. Es funktioniert immer noch nicht, weil ich ein Problem mit CORS habe, XMLHttpRequest kann http: // localhost nicht laden: 64819/api/Participant/getssnassociations? {% 22pInputSsns% 22: [% xxxx-xx-xxxx - xxxx% 22] ,% 22pTestregion% 22:% 22a% 22}. Antwort für Preflight hat ungültigen HTTP-Statuscode 405 Also muss ich damit arbeiten. Aber danke! – Josh