2011-04-13 3 views
1

좋은 하루,ASP.net MVC 파일을 Amazon S3에 업로드하여 진행합니다.

진행중인 Amazon S3에 파일을 업로드해야하는 ASP.net MVC 앱이 있습니다. Flajaxian이라 불리는 깔끔한 컨트롤이 꽤 잘 작동한다는 것을 알았습니다. 문제는 이제 업로드를 추적하는 DB에 데이터 행을 삽입하려는 것입니다. 아래 코드를 보면 컨트롤이 업로드 완료 후 실행되는 FileUploader1_ConfirmUpload 이벤트를 가지고 있습니다. Url.Action ("Upload", "TracksController")은 TrackController Controller에서 업로드 작업을 시작하기를 원합니다. 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> 

좋아, 어제부터 위와 약간 바뀌 었습니다. TracksController의 Action을 실행하려고 시도하는 대신 그 Action 코드를 Confirm_Upload 이벤트로 옮기고 싶습니다. 하지만 지금은 여전히 ​​텍스트 상자의 값을 가져와야합니다. MVC는 상태를 기억하지 못하기 때문에 어렵다고 판명됩니다. 다음은 textBoxes입니다. 그들은 위의 코드와 같은 페이지에 있습니다.

<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 이벤트로 보낼 수 있습니까? 서버 코드가 아니라면 자바 스크립트 클라이언트 측이 될까요?

사용중인 업로드 컨트롤이 내가 원하는 것을 excatly하는 유일한 것이지만 웹 양식이며 사이트는 MVC입니다. 그래서 MVC 페이지에서 웹 폼 컨트롤이 있습니다. MVC 텍스트 상자 값을 사용하여 처리를 위해 웹 양식 컨트롤에 전달하고 싶습니다.

답변

1

Url.Action은 단순히 URI를 반환합니다. 리디렉션을 시도하고 있습니까?

때로는 WebForms 이벤트가 MVC에서 작동하기 때문에 리디렉션 할 필요가있는만큼 간단하게 볼 수 있습니다.


주요 문제는 MVC 페이지와 비슷한 모양으로 WebForms 코드를 사용하려고한다는 것입니다. 이것은 대부분 호환되지 않으므로 자바 스크립트를 직접 유선 연결하거나 다른 자바 스크립트 파일 업로드 컨트롤 중 하나를 직접 사용해야합니다.

S3 업로드에 익숙하지 않아서 어떤 것도 추천 할 수 없습니다. 어쩌면 또 다른 SO 사용자가 더 잘 대답 할 수 있습니다.

+0

나는 원래

과 같은 코드로 업로드를 수행하기 위해 제출 버튼을 가지고있었습니다. 하지만 지금은 비동기식이므로 같은 포스트 백을하고 싶습니다. –

+0

jfar를 고맙게 생각합니다. –

관련 문제