MVC 3 и Uploadify + заполнение класса модели

Я реализую Uploadify для загрузки файлов на сервер, который отлично работает. но у меня возникли некоторые проблемы, когда я хочу написать ответ на модель, на мой взгляд...

Допустим, у меня есть модель клиента с полем выстрела в голову, которое я хочу заполнить ответом от события Uploadify oncomplete...

как лучше всего сделать что-то подобное .. Я новичок в веб-разработке, поэтому я очень потерялся, пытаясь понять это ..

заранее приветствую любую помощь


person BastanteCaro    schedule 12.12.2011    source источник


Ответы (1)


Если я правильно вас понимаю, вы хотите заполнить модель из «успешного» ответа от обратного вызова uploadify?

Что я обычно делаю:

  • Загрузите изображение с помощью плагина uploadify.
  • У меня есть отдельный контроллер, с которым загружаются сообщения
  • Сохраните его, измените его размер и, возможно, внесите другие коррективы в само изображение на сервере.
  • Сервер вернет либо сообщение об успешном завершении, либо сообщение об ошибке.
  • Если возвращается ошибочное сообщение, сервер возвращает ошибочное сообщение вместе с ошибкой.
  • Если возвращается сообщение об успешном завершении, сервер вернет сообщение об успешном завершении вместе с путем к изображению.
  • При обратном вызове я буду использовать jQuery для заполнения скрытого поля моей модели путем к изображению.

Если вам нужен пример или у вас есть другие вопросы, просто дайте мне знать.

Спасибо

Тайрон

Отредактировано ----------

Допустим, у меня есть представление, которое содержит следующее

 @Html.HiddenFor(model => model.Media.Path, new { @id = "image-path" });
 <input type="file" name="imageFile" id="file-upload" />

Мой скрипт содержит следующее

$('#file-upload').uploadify({

    'uploader': '/Scripts/Admin/uploadify/uploadify.swf',

    'script': '/Admin/Media/UploadImage/',

    'cancelImg': '/uploadify/cancel.png',

    'auto': true,

    'fileExt': '*.jpg;*.gif;*.png;*.pdf',

    'sizeLimit': 202400000,

    'onComplete': function (event, ID, fileObj, response, data) {
        $("#image-path").val(response);
     }

});
person TYRONEMICHAEL    schedule 13.12.2011
comment
Эй, Тайрон... звучит как хорошая идея... после еще пары часов игры с ней прошлым вечером. Я подумал, что могу просто добавить текст ответа в текстовое поле... но я предпочитаю, чтобы вы добавили его в скрытое поле. Я свяжусь с вами с любыми вопросами, которые у меня могут возникнуть. ваше здоровье - person BastanteCaro; 13.12.2011
comment
Я добавил код выше. Я надеюсь, что это имеет больше смысла. - person TYRONEMICHAEL; 13.12.2011
comment
@TyroneMichael Как выглядит действие вашего контроллера? Вы возвращаете из него String или ActionResult? - person Doug Chamberlain; 13.12.2011
comment
В приведенном выше примере я фактически не возвращаю сообщение об успехе, а только саму строку. Итак, я возвращаю ActionResult, но может быть, метод просто возвращает строку вместо ActionResult. Правильным способом было бы вернуть JsonResult, чтобы вы могли вернуть сообщение об успехе вместе с путем к изображению. - person TYRONEMICHAEL; 13.12.2011