使用jQueryAjax将FormData发送到C#WebAPI
我有以下功能:使用jQueryAjax将FormData发送到C#WebAPI,c#,jquery,C#,Jquery,我有以下功能: public class UserRequest { public string RequestMessage { get; set; } public HttpPostedFileBase Photo { get; set; } } public void CreateRequest(UserRequest userRequest) { } 当我使用以下脚本发布到此函数时,发布的图像始终为空: var requestMessage =
public class UserRequest
{
public string RequestMessage { get; set; }
public HttpPostedFileBase Photo { get; set; }
}
public void CreateRequest(UserRequest userRequest)
{
}
当我使用以下脚本发布到此函数时,发布的图像始终为空:
var requestMessage = document.getElementById("txtReqMessage").value;
var inputFile = document.getElementById("reqphoto");
var imageFile = inputFile.files[0];
$.ajax({
type: "POST",
url: "/UserRequest/CreateRequest/",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({
"RequestMessage": requestMessage,
"Photo": imageFile
}),
success: function () {
alert("Success");
}
我阅读了有关发布复杂数据的内容,因此我将脚本更改为:
var requestMessage = document.getElementById("txtReqMessage").value;
var inputFile = document.getElementById("reqphoto");
var imageFile = inputFile.files[0];
var formData = new FormData();
formData.append("RequestMessage", requestMessage);
formData.append("Photo", imageFile);
$.ajax({
type: "POST",
url: "/UserRequest/CreateRequest/",
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function () {
alert("Success");
}
});
但现在有点不对劲,我得到了错误500 将该方法定义为web方法
[WebMethod]
public void CreateRequest(UserRequest userRequest)
{
}
将该方法定义为web方法
[WebMethod]
public void CreateRequest(UserRequest userRequest)
{
}
将该方法定义为web方法
[WebMethod]
public void CreateRequest(UserRequest userRequest)
{
}
将该方法定义为web方法
[WebMethod]
public void CreateRequest(UserRequest userRequest)
{
}
您应该读取
表单datacollection中的数据
public void CreateRequest(FormDataCollection form)
{
}
尝试将contentType
ajax属性更改为
contentType: 'multipart/form-data'
您使用的是false
值,该值仅在发送文件时使用您应该读取表单数据采集中的数据
public void CreateRequest(FormDataCollection form)
{
}
尝试将contentType
ajax属性更改为
contentType: 'multipart/form-data'
您使用的是false
值,该值仅在发送文件时使用您应该读取表单数据采集中的数据
public void CreateRequest(FormDataCollection form)
{
}
尝试将contentType
ajax属性更改为
contentType: 'multipart/form-data'
您使用的是false
值,该值仅在发送文件时使用您应该读取表单数据采集中的数据
public void CreateRequest(FormDataCollection form)
{
}
尝试将contentType
ajax属性更改为
contentType: 'multipart/form-data'
您使用的是false
值,该值仅在发送文件时使用我将其更改为:
public void CreateRequest()
{
var httpRequest = HttpContext.Current.Request;
var userRequest = new UserRequest
{
RequestMessage = httpRequest.Form["RequestMessage"],
Photo = httpRequest.Files["RequestPhoto"],
};
}
var formData = new FormData();
formData.append("RequestMessage", requestMessage);
formData.append("RequestPhoto", imageFile);
$.ajax({
type: "POST",
url: "/UserRequest/CreateRequest",
data: formData,
processData: false,
success: function () {
alert("OK");
},
error: function () {
alert("Error");
}
});
我把它改成这样:
public void CreateRequest()
{
var httpRequest = HttpContext.Current.Request;
var userRequest = new UserRequest
{
RequestMessage = httpRequest.Form["RequestMessage"],
Photo = httpRequest.Files["RequestPhoto"],
};
}
var formData = new FormData();
formData.append("RequestMessage", requestMessage);
formData.append("RequestPhoto", imageFile);
$.ajax({
type: "POST",
url: "/UserRequest/CreateRequest",
data: formData,
processData: false,
success: function () {
alert("OK");
},
error: function () {
alert("Error");
}
});
我把它改成这样:
public void CreateRequest()
{
var httpRequest = HttpContext.Current.Request;
var userRequest = new UserRequest
{
RequestMessage = httpRequest.Form["RequestMessage"],
Photo = httpRequest.Files["RequestPhoto"],
};
}
var formData = new FormData();
formData.append("RequestMessage", requestMessage);
formData.append("RequestPhoto", imageFile);
$.ajax({
type: "POST",
url: "/UserRequest/CreateRequest",
data: formData,
processData: false,
success: function () {
alert("OK");
},
error: function () {
alert("Error");
}
});
我把它改成这样:
public void CreateRequest()
{
var httpRequest = HttpContext.Current.Request;
var userRequest = new UserRequest
{
RequestMessage = httpRequest.Form["RequestMessage"],
Photo = httpRequest.Files["RequestPhoto"],
};
}
var formData = new FormData();
formData.append("RequestMessage", requestMessage);
formData.append("RequestPhoto", imageFile);
$.ajax({
type: "POST",
url: "/UserRequest/CreateRequest",
data: formData,
processData: false,
success: function () {
alert("OK");
},
error: function () {
alert("Error");
}
});
500错误意味着服务器错误,所以试着调试您的服务器代码这是一个旧线程,但我必须说-URL末尾的额外斜杠导致了500错误。500错误意味着服务器错误,所以试着调试您的服务器代码这是一个旧线程,但是我不得不说,URL结尾的额外斜杠导致了500错误。500错误意味着服务器错误,所以试着调试你的服务器代码这是一个旧线程,但我必须说,URL结尾的额外斜杠导致了500错误。500错误意味着服务器错误,所以试着调试你的服务器代码这是一个旧线程,但是我必须说,URL末尾的额外斜杠导致了500错误。两个脚本都使用tryied:它是空的。请尝试contentType:“multipart/form data',
您使用的是false,只有在发送两个脚本都使用tryied的文件时才应该使用它:它是空的。请尝试contentType:“multipart/form data”,
您使用的false应仅在发送包含两个脚本的文件时使用:它为空。请尝试使用contentType:“多部分/表单数据”,
您使用的false应仅在发送包含两个脚本的文件时使用:它为空。请尝试使用contentType:“多部分/表单数据”,
您使用的是false,只有在发送文件时才应使用该选项