Ich muss ein Array von String von Ajax an einen Controller senden, und ich muss eine Datei zum Download zurückgeben. Ich sehe schon und überall sagt, dass die gleiche Lösung, aber ich kann es nicht funktionieren. Ich habe dem Controller eine Pause gemacht, bin aber nie reingekommen. Die Controller sind in verschiedenen Projekten.Pass Array von String von Ajax zu Controller
SOLUTION
PROJECT 1
Controllers
ApiControllers
RenderMvcControllers
SurfaceControllers
ExportController
PROJECT 2
function GetData() {
var stringArray = new Array();
stringArray[0] = "item1";
stringArray[1] = "item2";
stringArray[2] = "item3";
var postData = { values: stringArray };
$.ajax({
type: "POST",
url: "/umbraco/Surface/Export/HandleDownloadFile",
data: postData,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert();
alert(data.Result);
},
error: function (data) {
alert("Error: " + data.responseText);
},
});
}
class ExportController : SurfaceController
{
[HttpPost]
public ActionResult HandleDownloadFile(string[] productList)
{
return CurrentUmbracoPage();
}
}
Sie angegeben haben 'contetType:‚json'' daher müssen Sie die Daten 'Daten stringify: JSON.stringify (postdata),' aber Ihre Methode muss 'public Action HandleDownloadFile (string [] Werte) sein '(oder verwende' var postData = {productList: stringArray}; ') –