2009-09-04 5 views
0

jQueryを使用したアップロードに関する別の質問の例を次に示します。追加のデータとJqueryを使用したASP.NET MVCのアップロード

http://aspzone.com/tech/jquery-file-upload-in-asp-net-mvc-without-using-flash/

私は他のフォーム要素を通じて、しかし、アップロードにさらにデータを追加するには、このビットを拡張したいと思います。どのようにこれを行うことができる任意のアイデア?

+0

あなたがテキストエリア、選択、などのようなより多くのアップロード要素、または他の要素を追加しますか? – yoda

+0

テキストボックスなどの要素が増えました。 – Ciel

+0

これを試して、それに多くの時間を費やしたなら、私は2つのステップのプロセスを提案したいと思います:(1)ファイル以外のデータを投稿し、それを永続させます(2)ファイルをアップロードして後で付け加えます。同時に両方をやろうとすると、私はここに収まらないほど多くの潜在的な問題を引き起こします。 –

答えて

1

jQuery ajaxForm機能を使用して、ajaxUploadFormフォームの投稿を行います。私は、入力要素をajaxUploadFormフォームに追加すると、余分な入力データが含まれると想定します。

それを試してみてください:にマークアップを変更する(問題のサイトから借用)以下:

<script type="text/javascript"> 1: 
    $(function() { 

     $("#ajaxUploadForm").ajaxForm({ 
      iframe: true, 
      dataType: "json", 
      beforeSubmit: function() { 
       $("#ajaxUploadForm").block({ message: '<h1><img src="/Content/busy.gif" /> Uploading file...</h1>' }); 
      }, 
      success: function(result) { 
       $("#ajaxUploadForm").unblock(); 
       $("#ajaxUploadForm").resetForm(); 
       $.growlUI(null, result.message); 
      }, 
      error: function(xhr, textStatus, errorThrown) { 
       $("#ajaxUploadForm").unblock(); 
       $("#ajaxUploadForm").resetForm(); 
       $.growlUI(null, 'Error uploading file'); 
      } 
     }); 
    }); 
</script> 

<form id="ajaxUploadForm" action="<%= Url.Action("AjaxUpload", "Upload")%>" method="post" enctype="multipart/form-data"> 
    <fieldset> 
    <legend>Upload a file</legend> 
    <label>File to Upload: <input type="file" name="file" />(100MB max size)</label> 
    <input type="text" id="someOtherInputElement" value="Test" /> 
    <input id="ajaxUploadButton" type="submit" value="Submit" /> 
    </fieldset> 
</form> 
+0

いいえ、これは当てはまりません。コントローラ上でこれらのフォーム要素にアクセスする方法はありませんが、問題です。少なくとも私が見ることはできません。 – Ciel

+0

この回答が受け入れられた理由は何ですか? @Cielの場合と同様に、私はコントローラのアクションでこれらの他の要素にアクセスする方法を見ません。それについての洞察? – camainc

+0

Stacey、camainc:ここでのajaxForm関数の目標は、ajaxUploadFormフォームの入力要素をJSONオブジェクトにパッケージ化することです。このオブジェクトは、コントローラアクションを処理するときにMVCエンジンによって解釈されます。コントローラーに必要なパラメーターがあることを確認したら、これが機能するはずです。参考までに、http://stackoverflow.com/questions/4656232/pass-object-from-json-into-mvc-controller-its-always-nullを参照してください。 –

関連する問題