0

私は AJAX の経験がほとんどありません (ほとんどありません)。

画像ファイルをアップロードできるサンプル フォームを作成したい (eBay オークションを考えてみてください) が、これらのファイルは、APK を Google Play にアップロードするときのように、ブラウザ ウィンドウにドラッグ アンド ドロップできます (また、そうする必要があります)。

私はそのようなことをしたことがないので、学びたいです。現在、実装する実際のユースケースはありません。これに学習を求めています。それでは、eBay の例を取り上げましょう。

私のViewModelは次のようになります。

public class AuctionViewModel {

    public string Title, Description;
    public double Price;
    [...]
    public IEnumerable<Picture> Images; //most important part!
}

public class Picture {
    public string Url; //display URL, perhaps to be generated
    public byte[] payload; //uploaded data
}

質問のポイント:

  1. コントローラーはどのように見えますか?AJAXアップロード用に別のコントローラーが必要だと思います(ViewModelはセッションに保存されるはずです)
  2. Javascript クライアント側コードはどのように見えますか?
  3. jQuery/AJAX/MVC4でドラッグ&ドロップ可能なファイルに関するチュートリアルはありますか?
4

1 に答える 1

0

を使用できますHTML5 File API。これにより、DOM 要素のイベントをサブスクライブしdrop、ファイルの内容を取得し、XmlHTTPRequest オブジェクトを使用してファイルを非同期的にサーバーに送信できます。私が投稿した Mozilla リンクには、広範な例が含まれています。

サーバー側IEnumerable<HttpPostedFileBase>では、アップロードされたファイルのペイロードに の代わりに を使用することを検討してくださいbyte[]。例に示すように、AJAX 要求でコンテンツ タイプを使用する場合multipart/form-data、デフォルトのモデル バインダーは、アップロードされたファイルをモデルに自動的にバインドします。

于 2013-03-30T23:02:04.160 に答える