7

Kendo UI アップロード (MVC ラッパー) を非同期モードで使用しようとしています。Chrome では問題なく動作するようですが、IE ではうまくいきません (現時点では IE 9 でのみテストされています)。アップロードを開始すると、アクション メソッドにヒットし、リクエストに期待するデータが含まれていることがわかりますが、実際には何も保存されていません。

コード サンプルは次のとおりです。

_EditForm.cshtml (アップロードがある場所)

@(Html.Kendo().Upload()
    .Name(string.Format("upload{0}", "background"))
    .Multiple(true)
    .Events(evt => evt.Success("refreshBackgroundImages"))
    .Messages(msg => msg.DropFilesHere("drag and drop images from your computer here")
                        .StatusUploaded("Files have been uploaded"))
    .Async(a => a.AutoUpload(true)
                 .SaveField("files")
                 .Save("UploadImage", "Packages", new { siteId = Model.WebsiteId, type = "background" })))

コントローラーのアクションメソッド

[HttpPost]
public ActionResult UploadImage(IEnumerable<HttpPostedFileBase> files, Guid siteId, string type)
{
        var site = _websiteService.GetWebsite(siteId);
        var path = Path.Combine(_fileSystem.OutletVirtualPath, site.Outlet.AssetBaseFolder);
        if (type == "background")
        {
            path = Path.Combine(path, _backgroundImageFolder);
        }
        else if (type == "image")
        {
            path = Path.Combine(path, _foregroundImageFolder);
        }
        foreach (var file in files)
        {
            _fileSystem.SaveFile(path, file.FileName, file.InputStream, file.ContentType, true);
        }
        // Return empty string to signify success
        return Content("");
}
4

2 に答える 2

4

問題は、実際にファイルを保存して、サーバーから成功の応答を返そうとしたときです。あなたのデモがそのようなことをしているとは思いません。ie9 の iframe はサーバーからの応答を受信しません。ブラウザーは、プレーン テキストの json 応答であっても、応答をダウンロードと見なします。iframe の on load イベントが発生しないという事実までデバッグしたため、この応答を処理する必要がある onload ハンドラーは何もしていません。他のすべてのブラウザでは、これは機能しています。

ソース: http ://www.kendoui.c​​om/forums/kendo-ui-web/upload/async-uploader-and-ie-9-not-working.aspx

于 2013-07-08T14:17:27.113 に答える