我正在尝试将文本框和输入文件数据发送到我的webmethod。我一直在谷歌上搜索相当一段时间,但仍不确定如何实现这一目标:
Jquery / AJAX CALL:
var dataToSend = new FormData();
dataToSend.append('file', document.getElementById("myFile").value);
dataToSend.append('text', document.getElementById("biddername").value);
$.ajax({
type: "POST",
url: "SupplierMaster.aspx/RegisterSupplier",
data: dataToSend,
processData: false,
contentType: false,
dataType: false,
async: true,
success: function (data, status) {
console.log("CallWM");
alert(data.d);
},
failure: function (data) {
alert(data.d);
},
error: function (data) {
alert(data.d);
}
});
}
的WebMethod:
[WebMethod]
public static string RegisterSupplier(HttpPostedFile file, string biddername)
{
return "a";
}
似乎我无法调用webmethod。
EDIT1(由Kashif建议):
$.ajax({
type: "POST",
url: "SupplierMaster.aspx/RegisterSupplier",
data: "{'file' : " + document.getElementById("myFile").value + ",'biddername':" + document.getElementById("txtsuppliername").value + "}",
async: true,
contentType: "application/json; charset=utf-8",
success: function (data, status) {
console.log("CallWM");
alert(data.d);
},
failure: function (data) {
alert(data.d);
},
error: function (data) {
alert(data.d);
}
});
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string RegisterSupplier(HttpPostedFile file, string biddername)
{
return "a";
}
*
答案 0 :(得分:0)
试试这个。编辑一个。我在这里使用Btoa()将文件转换为base64。
dataToSend: "{'file' : " + btoa(document.getElementById("myFile").value)+ ",'biddername':" + document.getElementById("biddername").value+ "}",
$.ajax({
type: "POST",
url: "YourWebMethodClassName.aspx/SubmitBid",
data: dataToSend,
async: true,
contentType: "application/json; charset=utf-8",
success: function (data, status) {
console.log("CallWM");
alert(data.d);
},
failure: function (data) {
alert(data.d);
},
error: function (data) {
alert(data.d);
}
});
}
C# - 编辑代码
[WebMethod]
public static string RegisterSupplier(string file, string biddername)
{
// Write here logic to convert Base64 to file.
return "a";
}
答案 1 :(得分:0)
你不能发布AJAX文件的内容。您必须使用该文件POST一个表单。您应该搜索如何将带有文件输入的表单发布到Web方法。