MVC3 アプリケーションにテレリック ファイル アップロード コントロールを使用しています。非同期機能を使用してファイルをアップロードしています。以下は私が使用しているコードです。
@(Html.Telerik().Upload()
.Name("files")
.ShowFileList(true)
.Multiple(true)
.Async(
async => async
.Save("Save", "MyController")
.AutoUpload(false)
.Remove("Remove", "MyController")
)
)
[HttpPost]
public ActionResult Save(IEnumerable<HttpPostedFileBase> files)
{
foreach (var file in files)
{
// Some browsers send file names with full path. We only care about the file name.
var fileName = Path.GetFileName(file.FileName);
var destinationPath = Path.Combine(Server.MapPath("~/App_Data"), fileName);
file.SaveAs(destinationPath);
}
return Content("");
}
上記のコードは 2 つのボタンを生成します。「選択」と「ファイルのアップロード」。4 つのファイルを選択して [ファイルのアップロード] ボタンを押した後、テレリックはアクション メソッドを非同期で 4 回呼び出します (これは悪いことです)。私が望んでいたのは、メソッドを一度だけ呼び出す必要があり、4 つのファイルすべてを一度にメソッドに送信することでした (ファイルのリストを受け入れているため)。
では、Html.Telerik().Upload() コントロールでこれを達成するにはどうすればよいですか?
また、このコントロールを Html.Telerik().Window() で表示するので、アップロードしたデータを親ページに送信する必要があります。これを行う方法も役立ちますか?
ありがとう。