2013-05-20 23 views
0

恐怕我對MVC完全陌生,幾乎和編程一樣新。使用動態模型的MVC多文件上傳

我一直在使用MVC進行問卷調查。每個用戶在登錄後都會得到一個由數據庫中某些數據生成的特定問卷。該視圖綁定到包含一堆信息和一系列問題的模型。這些問題由一個編輯器模板處理,該模板由許多與問題相關的信息組成,如ID,姓名,回覆或類型。其中一個或多個問題可能涉及執行一個或多個文件的文件上傳。

我發現這個在計算器上:MVC3, multiple file upload, model binding看起來很有希望,但作爲文件上傳問題的數量可以變化,我不知道如何匹配上傳的文件的問題ID。這裏的方法似乎涉及使用上傳的名稱來匹配它們,但由於我不知道會有多少上傳問題,因此每個問題都會在頁面上動態生成和命名。

如果每個問題只允許上傳一個文件,通過向問題添加HttpPostedFileBase屬性,我設法讓它工作,但我無法弄清楚如何允許任何數量的上傳。

總結:有沒有辦法有0 +文件上傳實例,每個能夠上傳1個或多個文件,並能夠知道哪些文件屬於哪個上傳問題?另外,如果我想用AJAX提交我的問卷,我是否需要使用單獨的jquery插件(我已經見過幾個提到過的)並單獨處理文件上傳?

道歉,如果上述沒有意義,我已經變得相當困惑的整個事情。我沒有包括在任何代碼,一切我所得到的是複雜而漫長:(

非常感謝。

回答

0

我最近完成了一個非常類似的項目。我用了精細文件上傳的jQuery。這照顧但我認爲你在問如何將文件與上傳後的問題聯繫起來

如果我正確理解你的問題,你可以通過爲每個問題分配一個ID來動態地完成所有這些工作(我假設你已經有了),然後將每個上傳的文件與它的問題ID關聯到一個會話變量中,這個變量應該是一個合適的數據結構,比如列表。 item可以是一個類型爲UploadedQuestionFile(由您定義)的對象,具有2個字段:QuestionID和FilePath。當然,我會稍微簡化一下,以便說清楚。

對於第二個問題,是的,您應該使用控制器中定義的上傳功能分別處理每個上傳的文件。該函數應該從請求中的問題標識和文件中讀取,並將它們在會話變量中關聯在一起。每個文件都是分開處理的,因爲它們一次上傳一個文件。

這應該很容易處理您的要求。讓我知道你是否需要進一步的解釋。