Ich frage mich, wie würde ich das mit jQuery ajax tun. Jetzt habe ich eine jQuery-UI-Dialog-Popup und es hat eine HTML-Eingabedatei darauf. JetztWie lade ich eine Datei über jQuery hoch?
, wenn der Benutzer klickt importiert Ich mag eine Ajax-Post an den Server mit jQuery zu tun.
Ich bin nicht sicher, wie die Datei passiert in obwohl meine Aktion Ansicht.
Im Moment habe ich es einen vollständigen Beitrag tun zurück, so habe ich diesen
<% using (Html.BeginForm("Import", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<br />
<p><input type="file" id="file" name="file" size="23 accept="text/calendar"></p><br />
<p><input type="submit" value="Upload file" /></p>
<% } %>
Da ist in meinem Controller
public ActionResult Import(HttpPostedFileBase file)
Also ich bin nicht sicher, wie in einem HttpPostedFileBase mit jQuery passieren und wie man in jQuery enctype = "multipart/form-data"
setzt.
bearbeiten
Ok gut die jQuery Form Plugin scheint der Weg zu gehen zu sein.
$('#frm_ImportCalendar').livequery(function()
{
var options = {
dataType: 'json',
success: function(response)
{
alert(response);
}
};
$(this).ajaxForm(options);
});
Ich habe mich gefragt, warum meine Json nicht funktionierte aber jemand Sie erwähnt es nicht nur wie verwenden können. Ich überprüfe den anderen Link, wo jemand Json verwenden konnte.
Ich bin mir nicht sicher, warum in Lck verwendet .submit vor der Ajax-Methode einreichen.
bearbeiten
Wie kann ich das Datei-Upload-json Ergebnis ändere meinen Wörterbuch Array zurück?
Dictionary<string, string> result = new Dictionary<string, string>();
result.Add("Msg", "Success!!");
result.Add("Body", calendarBody);
// how can I change this?
return new FileUploadJsonResult { Data = new { message = string.Format("{0} uploaded successfully.", System.IO.Path.GetFileName(file.FileName)) } };
ich gerade hier kommen würde zu fragen, warum es JSON wird nicht zurückkehren lol. Ich habe etwas Ähnliches gemacht, aber ich habe keine ID .submit angegeben. Siehe Bearbeiten für das, was ich bisher habe. – chobo2
Javascript kann JSON nicht als Datenformat für Anforderungen akzeptieren, die eine Datei aus Sicherheitsgründen hochgeladen haben (sie ist auf der jQuery Form-Webseite dokumentiert). Ich schlage vor, dass Sie XML verwenden, das _almost_ so einfach zu verwenden ist wie JSON mit jQuery ... oder vielleicht Werte im Klartext, die durch Zeilenumbrüche getrennt sind. Ich habe .ajaxSubmit explizit verwendet, weil ich das Beispiel von einem Code meines eigenen Projekts genommen habe, wo ich noch ein paar Sachen mit dem Formular mache. Sollte Ihrem Code trotzdem praktisch gleichwertig sein. – LorenzCK
Nun, wie würde dieses XML aussehen? Ich habe meine Dictionary-Sammlung veröffentlicht, die ich in ein Json-Ergebnis umwandeln kann, wie ich sie in XML umwandeln kann. – chobo2