我现在需要上传一个文件和一个值分别用到如下Jquery函数:
 jQ.ajax
    ({
        type: "post",
        url: 'Handler.ashx',
        data: {Orderid:id},
        success: function (data) {
            alert(data.toLocaleString);
        },
        error: function (error) { alert(error.toString); },
    });    jQ("#form1").ajaxSubmit({
        success: function (str) {
            if (str != null && str != "undefined") {
                if (str[0] == "1") { alert("上传成功"); }
                else if (str == "2") { alert("只能上传Excel格式的图片"); }
                else if (str == "3") { alert("图片不能大于1M"); }
                else if (str == "4") { alert("请选择要上传的文件"); }
                else { alert('操作失败!'); }
            }
            else alert('操作失败!');
        },
        error: function (error) { alert(error.toString); },
        url: 'Handler.ashx',
        type: "post", 
        dataType: "text" 
    });但是后台代码该怎么写呢,只有一个HttpContext啊,我要怎么响应两个ajax的请求啊我这样写:
string OrderId = context.Request.Form["Orderid"];
context.Response.Write("1");
HttpPostedFile _upfile = context.Request.Files["File1"];
  context.Response.Write("msg");
            context.Response.End();
不行啊!!!!第一个响应得要id后 第二个就拿不到文件了

解决方案 »

  1.   

    要不然将两个请求一起post过来,一起处理,要不然两个请求分开处理。
    你这样客户端分两次提交,那么服务器端又要一起处理,很显然一次得不到id,一次得不到文件。
      

  2.   

    这两个合并发送就好了
    把你的OrderID 作为input放进 #form1
      

  3.   

    可不可以在url里面加参数啊,跟aspx是一样的吗?
      

  4.   

    可不可以不添加新的input元素啊,怎么一起post
      

  5.   

    假如你现在的form是这样子的,里面是个文件。
    <form id="form1" method="POST" action="youraction">
       <input type="file" id="File1"/>
    </form>
    改成
    <form id="form1" method="POST" action="youraction">
       <input type="file" id="File1"/>
       <input type="hidden" id="orderInput"/>
    </form>然后在你 jQ("#form1").ajaxSubmit 之前
    $("#orderInput").val(orderId);ashx里面接受的POST会有数据的。
      

  6.   

    客户端控制一下,前一个没有返回就不post第二个呀。