2011-04-13 146 views
1

好日子,ASP.net MVC文件上傳到亞馬遜S3與進步

我有一個ASP.net MVC應用程序需要將文件上傳到亞馬遜S3與進步。我發現了一個名爲Flajaxian的整潔控制器,可以很好地完成這項工作。問題是,現在我想將一行數據插入到一個跟蹤上傳的數據庫中。如果您查看下面的代碼,則控件上傳完成後會觸發FileUploader1_ConfirmUpload事件。 Url.Action(「Upload」,「TracksController」)沒有達到我想要的效果,這是TrackController控制器中的上傳操作。這是我第一次使用MVC,所以我希望有一個簡單的解決方案。

我原本有一個提交按鈕來執行代碼上傳,如<div class="submitBtnDiv"><input type="submit" value="Submit" class="submitBtn" id="trackAdd" /></div>。但現在上傳是異步的,所以我想要做同樣的回發

謝謝大家花時間閱讀這些內容,甚至更多的人試圖解決它。

<div class="contentsAcc"><form id="form2" runat="server" style="width:400px"> 
       <script runat="server"> 
        private void FileUploader1_FileNameDetermining(object sender, FileNameDeterminingEventArgs e) 
        { 
         e.FileName = SessionWrapper.PersonId.ToString() + "_" + e.FileName; 
        } 
       </script> 
       <script runat="server"> 
        private void FileUploader1_ConfirmUpload(object sender, ConfirmUploadEventArgs e) 
        { 
         Url.Action("Upload", "TracksController");        
        } 
       </script> 
        <fjx:FileUploader ID="FileUploader1" runat="server"> 
         <Adapters> 
          <fjx:DirectAmazonUploader OnFileNameDetermining="FileUploader1_FileNameDetermining" OnConfirmUpload="FileUploader1_ConfirmUpload" 
           AccessKey="WebConfig:AmazonAccessKey" 
           SecretKey="WebConfig:AmazonSecretKey" 
           BucketName="tracksupload" /> 
         </Adapters> 
        </fjx:FileUploader> 

     </form></div> 

好的,所以我試圖改變我的方法有點從上面的昨天。我想將Action代碼移動到Confirm_Upload事件中,而不是嘗試觸發TracksController的Action。但是現在我仍然需要獲取文本框的值。因爲MVC不記得狀態,所以證明是困難的。這是文本框。它們與上面的代碼位於同一頁面上。

<label for="BandName">Artist</label> 
     <%=Html.TextBox("Artists") %><%:Html.ValidationMessage("Artist","*")%> 
     <div class="clearfix"> 
     </div> 
     <label for="SongName">Song Title 
     </label> 
      <%=Html.TextBox("SongName") %><%:Html.ValidationMessage("SongName","*")%> 
     <div class="clearfix"> 
     </div> 

是否可以拉取文本框的值並將其發送到發生服務器端的Confirm_Upload事件?如果沒有服務器代碼,那麼可能是JavaScript客戶端?

使用上傳控件是唯一一個激動人心的我想要的,但它是網頁形式,該網站是MVC。所以我在一個mvc頁面上有一個web表單控件。我想使用MVC文本框的值,並將其傳遞給Web窗體控件進行處理。

回答

1

Url.Action只是返回一個URI。你想重定向嗎?

有時WebForms事件在MVC中工作,所以我看到它是否像您需要重定向一樣簡單。


您的主要問題是您嘗試在看起來像MVC頁面的頁面中使用WebForms代碼。這主要是不兼容的,您需要自己連接javascript或直接在視圖中使用另一個JavaScript文件上傳控件。

我不能推薦任何東西,因爲我不熟悉S3上傳。也許另一個SO用戶可以更好地回答。

+0

我原本有一個提交按鈕來執行代碼上傳,如

。但現在上傳是異步的,所以我想要做同樣的回傳 – 2011-04-13 14:43:58

+0

非常感謝jfar,如果我有15個聲望點但是由於它有用而投票贊成, – 2011-04-13 15:10:40