javascript - 如何使用 jquery ajax 调用将文件以及其他字段的数据发送到 webmethod is asp.net?

标签 javascript c# jquery asp.net ajax

我有一个网络表单,其中有 x 个文本框和 y 个下拉菜单等 我正在使用此代码将数据发送到服务器上的 webmethod:

$.ajax({
    type: "POST",
    url: "SupplierMaster.aspx/RegisterSupplier",
    data: JSON.stringify({
        id: $('#txtbidderid').val(),
        bidamt: $('#txtbidamt').val()
    }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: true,
    success: function (data, status) {
        alert(data.d);
    },
    failure: function (data) {
        alert(data.d);
    },
    error: function (data) {
        alert(data.d);
    }
});

现在的问题是我还想在此表单上包含文件附件。 如何将文件添加到 $.ajax 方法的 data: 中? 除非绝对必要,否则我不想使用外部插件等。

假设我将数据对象修改为如下所示:

var dataToSend = {};
dataToSend.id = $('#txtbidderid').val()
dataToSend.bidamt = $('#txtbidamt').val()
dataToSend.append( 'file', input.files[0] );

webmethod 武器会是什么样子? 例如,假设现在看起来像这样: [WebMethod] public static string SubmitBid(string id, string bidamt.....)

最佳答案

你可以尝试这样的事情。您可能需要操纵内容类型。

var dataToSend = new FormData();    
dataToSend.append( 'file', input.files[0] );

$.ajax({
  url: "SupplierMaster.aspx/RegisterSupplier",
  data: dataToSend,
  processData: false,
  contentType: false,
  type: 'POST',
  success: function(data){
    alert(data);
  }
});

关于javascript - 如何使用 jquery ajax 调用将文件以及其他字段的数据发送到 webmethod is asp.net?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30230130/

相关文章:

javascript - 上传文件 Sails JS Skipper v0.10.5

javascript - 将图像的 id 传递给函数并显示计数

javascript - 有没有办法避免 axios 中的 linkpreview.net 出现 CORS 错误,就像 Angular 中的 trustAsResourceUrl() 一样?

c# - 将 Excel 问题转换为 Word,然后导出为 PDF

javascript - 如何通过单击更改/交换 div 的背景图像?

javascript - 阻止 float 标签重置回原始位置

c#重定向(管道)进程输出到另一个进程

c# - 检测 SerialPort 何时准备好执行下一个命令

javascript - 组合自动 slider 和手动 slider

javascript - g 的替代方案 :select (multiple values)