2012-04-10 8 views
0

私はuploadifyを使用するビューに表示されるビューモデルを持っています。私はポストにコレクションデータを戻す必要があります。これどうやってするの?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:Uploadifyを使用して複数のファイルをアップロードするときに呼び出されるUpload()ポストバックごとに、Upload()ポストに戻ってビューモデル(またはフォームデータ)を戻したいとします。 FormsCollectionは戻ってきて、Uploadifyに関連するものがあります。ここでは、アップロード・プラグインの初期化時にフォーム・データを個別に渡す必要があります。 – JaJ

答えて

3

は、ここでは、このシナリオをカバーarticleです。 scriptDataパラメーターを使用すると、サーバーに追加の値を渡すことができます。しかし、uploadifyは各ファイルに対して複数のリクエストを送信するので(multiオプションをtrueに設定したと仮定して)、2つのコントローラアクションを持つことができます。最初のファイルは選択されたファイルごとにヒットし、すべてのファイルがアップロードされ、フォームデータが送信されます。また、ファイルを選択した直後にアップロードを開始したくない場合は、autoオプションをfalseに設定する必要があります。

関連する問題