0

uploadifyを使用するビューに表示されるビューモデルがあります。収集データを投稿に戻す必要があります。これどうやってするの?

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";
    }
4

1 に答える 1

3

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

于 2012-04-11T06:20:21.620 に答える