Ich bin wirklich noob bei diesem. Ich verwende Knockout, um Daten vom Frontend zum Backend zu speichern. Was ich tun möchte, ist ein Knockout-Array zu einem IEnumerable-Objekt in C# speichernC# - Post-Knockout-Array zu einem IEnumerable-Objekt
public class VDenuncia
{
public int IdDenuncia { get; set; }
public string Name{ get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public IEnumerable<VFiles> Files { get; set; }
}
Wie Sie sehen können darunter mein Modell ist
public class VFiles
{
public int IdFile { get; set; }
public byte[] File { get; set; }
public string Extension { get; set; }
}
Und das ist das Modell für Dateien.
Zuerst speichere ich die Dateien in einem DB und die ID des Einsatzes, ich möchte diese ID in VDenuncia mit Knockout speichern, aber nicht wissen, wie man es entwickelt.
Ich bin mit Ajax zu C# zu JS gehen, aber wenn zu IEnumerable Umwandlung observableArray bekommt kein Objekt in C#
$.ajax({
type: 'POST',
url: 'Home/Save',
data: { denuncia: data },
async: true,
success: function (data) {
speichern Aktion von Homecontroller
[HttpPost]
public async Task<JsonResult> Save(VDenuncia denuncia)
{
var manager = new DenunciaManager();
var result = await manager.SaveDenuncia(denuncia);
return new JsonResult
{
Data = result.Folio,
MaxJsonLength = int.MaxValue,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
Dies ist der Wert von Dateien.
var data = {
Name: self.Name(),
LastName: self.LastName(),
FirstName: self.FirstName(),
Files: ({
IdFile: self.IdFile(),
File: self.File(),
Extension: self.Extension(),
})
};
LÖSUNG:
Die Lösung, die Arbeiten gegeben, aber ich erkannte, dass ich mit Arrays arbeitete und ich nur auf Daten ändern, was als nächstes ist:
Files: [{
IdFile: self.IdFile(),
File: self.File(),
Extension: self.Extension(),
}]
Können Sie Ihre Aktion "Speichern" vom HomeController teilen? –
Sicher, ich bearbeite bereits meine Frage –
Postleitzahl, keine Bilder davon. Und was ist der Wert von 'Daten'? Wenn es im richtigen Format ist, wird es gut binden (aber wahrscheinlich müssen Sie die Daten string und verwenden 'contentType: 'json'') –