2012-04-10 3 views
0

У меня есть модель представления, которая отображается в представлении, которое использует uploadify. Мне нужно вернуть данные коллекции обратно в сообщение. Как я могу это сделать?Загрузить - MVC3: Как передать данные коллекции?

ViewModel:

public class ViewModel 
{ 
    string Name; 
    IEnumerable<Junk> theJunk; 
} 

public Junk 
{ 
    int id; 
    string Name; 
} 

Вид:

@model ViewModel 

@using (@Html.BeginForm()) 
{ 
    <input type="file" name="dr405" id="dr405" /> 

    <div> 
     @Html.LabelFor(model => model.Name) 
     @Html.EditorFor(model => model.Name) 
    </div>   
    @Html.EditorFor(model => model.theJunk) 

    <input type="submit" value="Upload Junk" /> 
} 

<script type="text/javascript"> 
    jQuery.noConflict(); 
    jQuery(document).ready(function() { 
     jQuery("#dr405").uploadify({ 
      'uploader': '@Url.Content("~/Scripts/uploadify.swf")', 
      'cancelImg': '/Content/themes/base/images/cancel.png', 
      'buttonText': 'Browse Files', 
      'script': 'home/upload', 
      'folder': '/uploads', 
      'fileDesc': 'Image Files', 
      'fileExt': '*.jpg;*.jpeg;*.gif;*.png', 
      'sizeLimit': '38000', 
      'multi': true, 
      'auto': true, 
     }); 
    }); 
    </script> 

Контроллер:

[HttpPost] 
    public ActionResult Upload(HttpPostedFileBase fileData, FormCollection collection) 
    { 
     // Get my view model here 
     // ...get the main Name! 
     // ...get the collection of Junk 

     return "ok"; 
    } 
+0

Чтобы укрепить свой вопрос, вы хотите обновить несколько файлов и строго типизированную форму (модель), и вы хотите знать, как это сделать? –

+0

@Erik Philips: за сообщение Upload(), которое вызывается при загрузке нескольких файлов через Uploadify, я хочу вернуть обратно мою модель просмотра (или любые данные форм) обратно в сообщение Upload(). FormsCollection имеет значение null, когда он возвращается, и есть что-то связанное с Uploadify, где вам нужно передавать данные формы отдельно при инициализации плагина uploadize. – JaJ

ответ

3

Вот article покрытие этого сценария. Вы можете использовать параметр scriptData, который позволяет передавать дополнительные значения на сервер. Но так как uploadify отправляет несколько запросов для каждого файла (при условии, что вы установили опцию multi в true), вы могли бы иметь два действия с контроллером: первый будет удаляться для каждого выбранного файла, чтобы он где-то его сохранял, а второй был горячим после того, как все файлы были загружены и отправлены данные формы. Вы также должны установить для параметра auto значение false, если вы не хотите, чтобы загрузка начиналась сразу после выбора файлов.

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