2011-01-07 10 views
0

ASP.NET MVC und jQuery ThickBox. Ich zeige etwas Inhalt in ThickBox. Es enthält Datei-Upload-FormularThickBox - Update ohne Umleitung

Der Blick Multi-media.apsx

<form action="/upload/multi-media" method="post" enctype="multipart/form-data"> 
    <label for="file">File name:</label><br /> 
    <input type="file" name="file" id="file" /><br /> 
    <input type="submit" value="Upload" /> 
</form> 
<% if (Model.Count > 0) { %> 
    <% foreach (FileInfo mediaFile in Model) { %> 
    <img width="100px" height="100px" 
     src="<%:ResolveUrl("~/audio.png") %>" border="0" alt="<%: mediaFile.Name %>" />    //................ 

Nach Datei-Upload mir /upload/Multi-Media- Aktion und Inhalt im normalen Fenster, nicht in ThickBox zeigt umleiten.

Wie kann ich in ThickBox nach Datei-Upload bleiben? Ich muss die Inhalte in ThickBox ständig anzeigen, auch nach dem Hochladen der Datei.

UPDATE: Die Ajax-Datei hochladen. Wie auch immer, lade ThickBox neu. Warum?

Der Blick Mehr media.apsx

 <div id="mydiv"> 
     <% Html.RenderPartial("MultiMediaDetails", Model); %> </div> 

MultiMediaDetails.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<FileInfo>>"%> 
    <%@ Import Namespace="System.IO" %> 
<% using (Ajax.BeginForm("multi-media", "upload" , 
    new AjaxOptions { UpdateTargetId = "mydiv", HttpMethod = "Post" }, new { enctype = "multipart/form-data" })) 
{ %> 

    <label for="file">File name:</label><br /> 
    <input type="file" name="file" id="file" />&nbsp; 
    <input type="submit" value="Upload" /> 

<% }%> 

<% if (Model.Count > 0) 
    { 
    foreach (FileInfo mediaFile in Model) 
     { 
      //................... .............."/> 
+0

Einrückcode mit 4 Leerzeichen. '<' wird unterstützt. – Jacob

Antwort

1

Sie können eine HTML-Datei hochladen durch Ajax nicht tun, so t Die einzige Möglichkeit, das erneute Laden einer Seite zu vermeiden, besteht darin, den Uploader in eine iframe zu platzieren oder einen Flash-Uploader wie SWFUpload zu verwenden.

+0

Warum kann ich keinen HTML-Datei-Upload über Ajax machen? Ich weiß, ich kann nicht, aber warum? Ich kann kein iframe verwenden, weil ThickBox einige Werte an das übergeordnete Fenster zurückgibt. – Alexandre

+0

Ich bin mir nicht sicher, warum JavaScript/HTML so entworfen wurde. Es war wirklich nicht für Ajax konzipiert. – Jacob

+0

Wenn es sich um eine Option für Ihre Zielgruppe handelt, würde ich trotzdem einen Flash-Uploader empfehlen. Das Hochladen von HTML-Dateien ist extrem schlecht (kann nicht sehr einfach gestylt werden, lädt nur jeweils eine Datei hoch, erfordert ein Post-Back, kann die im Datei-Browser angezeigten Dateitypen nicht steuern, hat keine Rückrufe usw.). Mit einem Flash-Uploader (SWFUpload ist super) ersparen Sie sich viel Ärger. – Jacob