Hallo Ich habe ein Problem, Daten an den Controller zu buchen. Jetzt habe ich ein Modell,Ajax FormData append list Objekt
public class Media
{
public int Id { get; set; }
public string Category { get; set; }
public string Guid { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public List<int> Portals { get; set; }
public string Lang { get; set; }
public List<Folder> Folders { get; set; }
}
Dann werde ich Datei und dieses Modell auf Controller. In View AJAX Side
var formData = new FormData();
var totalFiles = document.getElementById("FileUpload").files.length;
if (totalFiles === 0) {
toastr.warning('Lütfen resim yükleyin.');
return;
}
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("FileUpload").files[i];
formData.append("FileUpload", file);
}
var itemFolder= {
Id: refFolder
}
var folderss = [];
folderss.push(itemFolder);
var item = {
Title: title,
Description: desc,
Category: category,
Portals: portals,
Folders: folderss
}
formData.append("Title", title);
formData.append("Description", desc);
formData.append("Category", category);
formData.append("Portals", portals);
formData.append("Folders",folderss);
$.ajax({
type: 'POST',
url: '@Url.Action("Add", "Media")',
data: formData,
contentType: false,
processData: false,
success: function (data) {
var result = JSON.parse(data);
if (result.Status !== 200) {
toastr.error('@Resources.Resource.Error_Unexpected');
return;
}
if (result.Result === "SUCCEED") {
toastr.success('Resim kaydedilmiştir.');
window.location.reload();
return;
} else {
toastr.error('@Resources.Resource.Error_Unexpected');
}
},
error: function (error) {
toastr.error('@Resources.Resource.Error_Unexpected');
return;
}
});
und ich möchte diese Post-Daten in der Steuerung wie
public ActionResult Add(Models.Media item)
{
if (item == null
|| string.IsNullOrEmpty(item.Title)
|| string.IsNullOrEmpty(item.Category))
return Content(Serialization.JsonSerialize(new { Status = 400 }));
if (Request.Files.Count <= 0)
return Content(Serialization.JsonSerialize(new { Status = 401, Result = "NO_FILE" }));
return Content(Serialization.JsonSerialize(new { Status = 200, Result = MediaRepository.Add(item) }));
}
ich alle Daten nehmen, ohne Ordner Attribut es null geht. Wie kann ich dieses Problem lösen? Vielen Dank
Sammlungsobjekte benötigen Indexer. Aber wenn Sie Ihre Sicht korrekt erzeugt haben, dann brauchen Sie nur 'var formdata = new FormData ($ (' form '). Get (0)); 'um korrekt zu Ihrem Modell zu serialisieren (siehe [wie man den ganzen Satz von Modell zu formdata und erhalten Sie in MVC] (http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-for-formdata-and-obtain-it-in-mvc/ 29293681 # 29293681)) –