2013-05-20 3 views
0

Боюсь, что я совершенно не знаком с MVC и почти как новичок в программировании в целом.MVC Multiple FileUpload с динамической моделью

Я делаю анкету с использованием MVC. Каждому пользователю при входе в систему предоставляется конкретный вопросник, созданный из некоторых данных в базе данных. Вид связан с моделью, содержащей кучу информации и список вопросов. Вопросы обрабатываются шаблоном редактора, состоящим из многих связанных с вопросом информации, таких как ID, Name, Response или Type. Один или несколько из этих Вопросов могут включать загрузку файла из одного или нескольких файлов.

Я нашел это на stackoverflow: MVC3, multiple file upload, model binding, который выглядел многообещающим, но по мере того, как количество загружаемых файлов Вопросы могут различаться, я не знаю, как сопоставить загруженные файлы с идентификатором вопроса. Подход, похоже, подразумевает использование имени в загрузках для их сопоставления, но поскольку я не знаю, сколько вопросов будет загружено, каждый из них будет сгенерирован и назван динамически на странице.

Мне удалось заставить его работать, если каждый вопрос разрешал загружать только один файл, добавив свойство HttpPostedFileBase к вопросам, но я не могу судить, как разрешить любое количество загрузок.

Подводя итог: есть ли способ иметь 0+ экземпляров для загрузки файлов, каждый из которых способен загружать 1 или более файлов и может определить, к каким файлам принадлежит вопрос загрузки?

Кроме того, если бы я хотел представить свою анкету с помощью AJAX, должен ли я использовать отдельный плагин jquery (я видел пару упомянутых) и обрабатывать загрузку файлов отдельно?

Извините, если вышеизложенное не имеет смысла, я полностью запутался в этом. Я не включал код, как все, что у меня сложный и длинный :(

Большого спасибо.

ответ

0

Я недавно закончил очень похожий проект. Я использовал Fine File Uploader для JQuery. Это позаботилось самого загруженного механизма. Но я думаю, вы спрашиваете, как связать файлы с вопросами ПОСЛЕ загрузки.

Если я правильно понял ваш вопрос, вы можете сделать все это динамически, назначив идентификатор для каждого вопроса (который, как я полагаю, у вас уже есть), а затем связать каждый загруженный файл с его идентификатором вопроса в переменной сеанса. Эта переменная должна быть соответствующей структурой данных, такой как список. Например, каждый список item может быть объектом типа UploadedQuestionFile (определенным вами) с двумя полями: QuestionID и FilePath. Конечно, я немного упрощаю этот сценарий, чтобы понять это.

Для второго вопроса да, вы должны обрабатывать каждый файл, загруженный отдельно, с функцией загрузки, определенной в вашем контроллере. Эта функция должна считывать идентификатор и файл вопроса из запроса и связывать их вместе в переменной сеанса. Каждый файл обрабатывается отдельно, потому что он загружается по одному.

Это должно легко удовлетворить ваши требования. Дайте мне знать, если вам нужно дополнительное объяснение.

Смежные вопросы