ASP.NET MVC несколько загрузок файлов - PullRequest
2 голосов
/ 18 ноября 2010

Я работаю над строго типизированной формой редактирования для модели MVC, которая содержит коллекцию дочерних моделей (Документ содержит много LocalizedDocuments). Каждый документ может содержать 0, 1 или много локализованных документов, и каждый локализованный документ имеет тип ввода type = "file", чтобы пользователь мог загрузить новую версию файла.

Чтобы отобразить поля редактирования для каждого LocalizedDocument, у меня есть строго типизированное частичное представление, которое содержит поля для LocalizedDocument, а затем в моем представлении редактирования используется Html.EditorFor(model => model.Document.LocalizedDocuments).

Когда форма публикуется, каждое из моих полей LocalizedDocument имеет префикс LocalizedDocument [i], как и ожидалось. Тем не менее, как я могу получить его, чтобы к входу файла также добавлялся префикс LocalizedDocument [i], чтобы я мог связать загрузку файла с соответствующим LocalizedDocument?

1 Ответ

0 голосов
/ 19 ноября 2010

Скажите, правильно ли я интерпретирую этот вопрос. У вас есть документы, которые нужно загрузить и которые относятся к родительской таблице, или вам необходимо присвоить этим документам определенный идентификатор после загрузки нескольких из них?

Я буду использовать Загрузить .

Вам необходимо знать идентификатор LocalizedDocument. Вы также сможете загружать только 1 за раз. (каждый файл - это отдельный серверный вызов)

Сначала необходимо назначить идентификатор LocalizedDocument для данных, которые будут отправлены на сервер.

<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){ }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...