У меня есть элемент управления загрузкой кендо, подобный этому:
@(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
?