Angenommen, ich habe Javascript wie im Bild. Im Array gebe ich die (mehrfachen) Werte in das variable Array ein und sende dieses Array an eine Aktionsmethode in einem Controller. In der Aktionsmethode bekomme ich das als "Objekt". Wie bekomme ich die Werte aus diesem "Objekt" heraus? Ich bevorzuge es, keinen Ajax Post zu verwenden. Ist das möglich? Wenn ja, wie "erfasse" ich die Werte in der Aktionsmethode? Wie können Sie mehrere JavaScript-Werte an eine C# -Aktionsmethode senden?
Antwort
Sie sollten die data
Eigenschaft verwenden, um das Array von ganzen Zahlen
var array = [1, 2, 4];
$.ajax({
url: '/Home/Items',
type: 'POST',
data: { items: array },
success: function(data) {
console.log(data);
}
});
Angenommen, Ihre haben eine Aktion Methode wie folgt es
[HttpPost]
public ActionResult Items(int[] items)
{
// to do : do something with items
return Json(items);
}
Jetzt Sie ich sehe erhalten senden lies den Wert eines Eingabefeldes und verwende diesen als Wert für deine Array-Variable. Ich bin mir nicht sicher, welches Wertformat Sie in Ihrem Eingabefeld haben. Wenn es eine durch Kommata getrennte Liste von int (Bsp .: "1,3,5") ist, können Sie die split
Funktion verwenden, um ein Array von diesem zu erhalten.
var v = "2,5,78,8";
var array = v.split(',');
In Ajax-Aufruf:
var items = ['USA', 'UK', 'Canada'];
$.ajax(
{
type: "POST",
url: "/Test/Details",
contentType: 'application/json',
data: JSON.stringify({ function_param: items })
});
In Controller:
public ActionResult Details(string[] function_param)
Wenn Sie Ajax-Aufruf nicht verwenden möchten, erstellen Sie dann einen Eingabetyp versteckte Kontrolle in html und setzen das Javascript-Array in das versteckte Feld und senden Sie das Formular und erhalten Wert im Controller mit request.form ["hiddencontrol"]
In JS:
$("#hiddenControl").val(JSON.stringify(items));
Mögliches Duplikat. Überprüfen Sie diese http://stackoverflow.com/questions/25288240/ajax-post-multiple-data-to-asp-net-mvc –
Willst du sagen, dass Sie Daten zurück, aber nicht mit AJAX, nur eine Schaltfläche senden für senden möchten Beispiel? Wenn Sie ein Modell haben, könnte eine der Eigenschaften Ihr int-Array sein. –