我有一个这样的剑道上传控件:
@(Html.Kendo().Upload()
.Name("attachments")
.Async(a => a
.Save("UploadAsync", "Intel")
.Remove("RemoveAsync", "Intel")
.AutoUpload(true)
)
.Events(e => e
.Success("onSuccessfulUpload")
.Remove("onRemoveFile")
)
.Validation(v => v.AllowedExtensions(exts))
)
在控制器中,它的 Save 方法是这样的:
public ActionResult UploadAsync(IEnumerable<HttpPostedFileBase> attachments)
{
string filename;
// ... do things ...
return Json(new { ImageName = filename }, "text/plain");
}
其中变量filename
被赋值。
它在控制器中的 Remove 方法看起来非常相似:
public ActionResult RemoveAsync(string[] fileNames)
{
string filename;
// ... do things ...
return Json(new { ImageName = filename }, "text/plain");
}
我验证了两种控制器方法都被正确调用,并且在这两种情况下filename
都分配了变量。
上传按预期工作,Success 事件也按预期工作。(警报只是为了测试。)
function onSuccessfulUpload(e) {
alert(e.response.ImageName);
}
问题出现在删除文件上。
当我到达 Remove 事件时,e
没有.response
. 它有e.files
和e.sender
,但没有响应。
function onRemoveFile(e) {
alert(e.response); // undefined!
alert(JSON.stringify(e.files)); // works, but does not have what I need
}
如何访问该RemoveAsync
方法返回的内容?