Dropbox API: отправка данных через Ajax на контроллер
Я использую Dropbox API JavaScript Chooser и хочу вернуть данные из ответа в мой контроллер
Параметры Javascript для API Dropbox
options = {
success: function (files) {
$.ajax({
url: '/FileTransfer/FileData',
type: "POST",
dataType: "json",
//data: JSON.stringify(files[0]),
data: files,
success: function (result) {}
});
},
cancel: function () {},
linkType: "preview",
multiselect: true
};
Действие контроллера
Мое действие контроллера в данный момент ничего не делает, но в конечном итоге кеширует выходные данные в модель, как только я получу данные, которые будут переданы в нее, что и является моей проблемой.
public JsonResult FileData(string model)
{
return Json(new { success = true });
}
2 ответа
Решение
Рефакторинг кода после предложения
Javascript
options = {
success: function (files) {
$.ajax({
url: '/FileTransfer/FileData',
type: "POST",
dataType: "json",
data: { result : files},
success: function (result) {
$("#FileList").load('/FileTransfer/Cloud');
},
error : function (jQXHR, textStatus, errorThrown) { }
});
},
cancel: function () {
},
linkType: "preview",
multiselect: true
};
контроллер
public JsonResult FileData(List<DropboxFile> result)
{
CacheEntity(result);
return Json(new { success = true });
}
Советы ADyson помогли мне решить мою проблему, спасибо
Измененный код ниже, обратите внимание на изменение данных: и затем десериализован в контроллере
Javascript
options = {
success: function (files) {
$.ajax({
url: '/FileTransfer/FileData',
type: "POST",
dataType: "json",
data: { result : JSON.stringify(files) },
//data: files,
success: function (result) {
$("#FileList").load('/FileTransfer/Cloud');
console.log(result);
},
error : function (jQXHR, textStatus, errorThrown) {
//alert("An error occurred: " + jQXHR.status + " " + textStatus + " " + errorThrown);
}
});
},
cancel: function () {},
linkType: "preview",
multiselect: true
};
контроллер
public JsonResult FileData(string result)
{
var convertedResult = JsonConvert.DeserializeObject<List<DropboxFile>>(result);
CacheEntity(convertedResult);
return Json(new { success = true });
}