我會在此處添加我的答案以及其他有效答案。首先,雖然你會希望獲得成功的功能,而不是完整的功能返回的響應:
$("#files").kendoUpload({
async: {
saveUrl: url,
removeUrl: removeUrl,
autoUpload: true
},
select: onFileSelect, // function for when a file is selected
success: onFileSuccess, // function that returns response after upload
complete: onFileComplete, // function after success
remove: onFileRemove, // function for when a file is removed
});
的成功函數返回一個對象(通常人們將其命名爲E)
function onFileSuccess(e) {
console.log("e.response", e.response);
console.log("e.operation", e.operation);
console.log("e.XMLHttpRequest.status", e.XMLHttpRequest.status);
//e.operation is upload or remove
if (e.operation === "upload") {
// a file was added, get the response
var fileid = e.response;
} else {
// Do something after a file was removed
}
}
我的控制檯.LOG條目返回此數據:
console.log values
這是我如何從服務器返回我的數據:
public HttpResponseMessage InsertTempFile()
{
HttpPostedFile file = System.Web.HttpContext.Current.Request.Files[0];
//........
// Code that adds my file to the database
// and generates a new primary key for my file
//.........
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent(myNewId.ToString());
return response;
}
的response.Content返回我的新的ID在e.response 的HttpStatusCode.Ok返回我的200狀態有,如果你檢查響應時返回,以及其他數據的一羣。
注意使用HttpResponseMessage和HttpStatuseCode你需要在你的類下面的命名空間:
using System.Net.Http;
using System.Net;
你試圖'的console.log(E)'看到所返回什麼?我願意成爲'e'不是'事件',而是'從srever返回的數據'。如果您使用'var data = $ .parseJSON(e)',您最終可能會得到一個數據對象,該數據對象具有您的控制器定義的屬性。 – Ohgodwhy 2013-03-20 06:50:55
Yah數據變量包含類似於「服務器響應:實際字符串」的字符串。 – Pa1 2013-03-20 07:09:11
被返回的項目是一個對象,你使用parseJSON,它不是你發送的對象?在這裏發佈對象,使用jsfiddle並保存它。 – Ohgodwhy 2013-03-20 07:10:10