2010-11-18 11 views
2

하위 모델 컬렉션이 포함 된 MVC 모델에 강력한 형식의 편집 양식을 사용하고 있습니다 (문서에 많은 LocalizedDocuments가 포함되어 있음). 각 문서에는 0, 1 또는 많은 현지화 된 문서가 포함될 수 있으며 모든 현지화 된 문서에는 사용자가 파일의 새 버전을 업로드 할 수 있도록 입력 유형 = "파일"이 있습니다.ASP.NET MVC 다중 파일 업로드

각 LocalizedDocument에 대한 편집 필드를 렌더링하려면 LocalizedDocument의 필드가 포함 된 강력한 형식의 부분보기가 있고 편집보기에서는 Html.EditorFor(model => model.Document.LocalizedDocuments)을 사용합니다.

양식이 게시 될 때 각 LocalizedDocument 필드에 LocalizedDocument [i] 접두사가 예상대로 있습니다. 그러나 파일 가져 오기에 LocalizedDocument [i] 접두사가 붙을 수 있도록 어떻게 가져올 수 있습니까? 그렇다면 파일 업로드를 적절한 LocalizedDocument에 연결할 수 있습니까?

답변

0

이 질문을 잘못 해석하는지 알려주세요. 상위 테이블에 업로드해야하는 문서가 있거나 여러 문서를 업로드 한 후이 문서에 특정 ID를 할당해야합니까?

나는 Uploadify을 사용할 것입니다.

LocalizedDocument의 ID를 알아야합니다. 한 번에 1 개의 파일 만 업로드 할 수도 있습니다. (각 파일은 별도의 서버 호출입니다.)

먼저 서버로 보낼 데이터에 LocalizedDocument의 Id를 할당해야합니다.

<script type="text/javascript"> 
var auth = "<%: Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>"; 
var ASPSESSID = "<%: Session.SessionID %>"; 

$(document).ready(function() { 
    $('#file_upload').uploadify({ 
     'uploader': '/Content/uploadify.swf', 
     'script': '<%: Url.Action("Upload", "Documents") %>', 
     'cancelImg': '/Content/Images/cancel.png', 
     'folder': '/uploads', 
     'scriptData': { ASPSESSID: ASPSESSID, AUTHID: auth, DocumentId: <%: Model.LocalizedDocumentId %>}, 
     'auto':true, 
     'multi': true 
    }); 
}); 
</script> 

컨트롤러 :

public ActionResult InsertImages(HttpPostedFileBase FileData, int DocId){ }