Я использую jQuery.Form для загрузки файлов на сервер.Вот пример, который я использую http://aspzone.com/tech/jquery-file-upload-in-asp-net-mvc-without-using-flash/
Я хочу проверить файл на сервере для NULL и для расширения,
public FileUploadJsonResult UploadSubscriptions(HttpPostedFileBase file)
{
if (file == null)
return new FileUploadJsonResult { Data = new { message = string.Format(" Error uploading file. Choose the file") } };
if(Path.GetExtension(file.FileName).ToLower() != "csv")
return new FileUploadJsonResult { Data = new { message = string.Format("{0} Error uploading file. Invalid extension.", System.IO.Path.GetFileName(file.FileName)) } };
//Doing the thing here...
return new FileUploadJsonResult { Data = new { message = string.Format("{0} uploaded successfully.", System.IO.Path.GetFileName(file.FileName)) } };
}
, но во всех случаях, если я верну FileUploadJsonResultна клиенте это будет успешный результат, будет выполнена функция success
:
success: function (result) {
//debugger;
$("#ajaxUploadForm").unblock();
$("#ajaxUploadForm").resetForm();
$.growlUI(null, result.message);
},
error: function (xhr, textStatus, errorThrown) {
$("#ajaxUploadForm").unblock();
$("#ajaxUploadForm").resetForm();
$.growlUI(null, 'Error uploading file. Try again later');
$('div.growlUI').css("background", "url(attention48.png) no-repeat 10px 10px");
}
В таком случае я могу отредактировать функцию 'success', чтобы поставить условия для проверки result.message, а затем отобразить growlUI с ошибкой, но я бы скорее сгенерировал ошибку на сервере для выполнения клиентской функции error
Как я могу это сделать?
ОБНОВЛЕНИЕ:
вот моя модификация функции 'success'для обработки ошибок:
success: function (result) {
//debugger;
$("#ajaxUploadForm").unblock();
$("#ajaxUploadForm").resetForm();
$.growlUI(null, result.message);
if (result.message.indexOf("Error") != -1)
$('div.growlUI').css("background", "url(attention48.png) no-repeat 10px 10px");
},