Я работаю с ASP.NET MVC3, Kendo UI и JQuery. Я пытаюсь передать сообщение об ошибке обратно в представление, когда обработка загруженного файла не проходит правила проверки, которые у нас есть.
Вот мой контроль над загрузкой на мой взгляд:
@(Html.Kendo().Upload()
.Name("files")
.Async(a => a
.Save("SaveForm", "Home")
.Remove("RemoveForm", "Home")
.AutoUpload(true))
.Events(events => events
.Success("onSuccess")
.Error("onUploadError")
.Select("onSelect")
))
Вот соответствующие части метода SaveForm в контроллере:
try
{
FieldDefinitions = ProcessPDFFile(file.FileName);
}
catch (InvalidDataException ex){
List<String> errors = new List<String>();
errors.Add(ex.Message);
Response.StatusCode = 500;
Response.TrySkipIisCustomErrors = true;
//return Json(new { success = false, statusText = "error error" }, "text/plain");
//ModelState.AddModelError("pp", ex.Message);
//var result = ModelState.ToDataSourceResult();
//return Json(errors, JsonRequestBehavior.AllowGet);
//return Json(new { status = "OK" }, "text/plain");
//return Json(String.Concat(errors.ToArray()));
//return Json(new AjaxResult(false, ex.Message, errors ));
}
Вот моя функция ошибки JQuery:
function onUploadError(e)
{
alert(e.message);
}
В моем контроллере ex.Message является настраиваемым сообщением об ошибке, и я хочу передать его обратно в представление для отображения. Вы можете увидеть все различные варианты, которые я пытался передать, просмотрев прокомментированные строки кода в моем контроллере.
Выполняется выполнение функции jquery error. Единственная проблема заключается в том, что я не могу получить свое пользовательское сообщение об ошибке в jquery.
При оценке e.XMLHTTPRequest
он имеет следующее:
responseText = "Ошибка при попытке получить ответ сервера" Статус = 500 StatusText = "error"
Итак, как мне получить свое сообщение об ошибке в один из вышеперечисленных элементов XMLHTTPRequest? Я предполагаю, что возврат на моем контроллере должен быть каким-то образом изменен.