Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将数据发送到httphandler_C#_Asp.net_Post_Httphandler - Fatal编程技术网

C# 如何将数据发送到httphandler

C# 如何将数据发送到httphandler,c#,asp.net,post,httphandler,C#,Asp.net,Post,Httphandler,我在一个页面上有一个链接,它可以回发帖子 otherOptionsContainer.Controls.Add(new LiteralControl(String.Format("<a href='{0}' onclick='return {1}.exportItems();'>Export</a><br/>", exportURL, this._clientInstanceName))); 我需要从代码向httpHandler发送一些参数。我有一些

我在一个页面上有一个链接,它可以回发帖子

    otherOptionsContainer.Controls.Add(new LiteralControl(String.Format("<a href='{0}' onclick='return {1}.exportItems();'>Export</a><br/>", exportURL, this._clientInstanceName)));
我需要从代码向httpHandler发送一些参数。我有一些限制。 1.不要使用查询字符串 2.不要用饼干

我试着像这样使用ajax发送数据

$.ajax({
    url: "_Layouts/blah/blahHandler.ashx",
    contentType: "application/json; charset=utf-8",
        data: { 'key1':'value1'},
        dataType: "json",
        success: OnComplete,
        error: OnFail
    });

但http处理程序写入另一个响应对象。或者另一个上下文出现在处理程序中。

既然您唯一的限制是不使用查询字符串和cookies,为什么不使用表单post?考虑这个虚构的例子。

在HTML中:

<form id="form" action="DefaultHandler.ashx" method="post" style="display: none;">
    <input type="hidden" name="field1" value="abc" />
    <input type="hidden" name="field2" value="xyz" />
</form>
<a href="#" onclick="form.submit(); return false;">Handle</a>

根据你的需要调整它。您可以在JavaScript中动态创建表单,并根据需要设置字段。

ssome_params_from_code应该来自哪里?服务器端?客户端传入json对象?它不可能从应该来自服务器端的代码中清除某些参数。在我的json示例中,我使用json将其从服务器端传递到客户端,并从客户端发送。因此,它与您在服务器端使用的所有其他对象一样(这里的查询字符串/cookie是irellevant)。如果它是从db得到的,你可以通过db调用得到它,如果它是依赖于会话的对象,你可以从会话中检索它,等等。你需要提供关于这个变量的更多信息,以及什么不起作用。当我向我的处理程序发送地址时,单击链接()我会得到我的excel文件。但为了将一些参数从代码传递给处理程序,我使用Cookie。当我使用ajax请求时,我无法获取我的文件。
<form id="form" action="DefaultHandler.ashx" method="post" style="display: none;">
    <input type="hidden" name="field1" value="abc" />
    <input type="hidden" name="field2" value="xyz" />
</form>
<a href="#" onclick="form.submit(); return false;">Handle</a>
public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/plain";
    context.Response.Write("Received:\n");
    context.Response.Write(context.Request.Form["field1"]);
    context.Response.Write("\n");
    context.Response.Write(context.Request.Form["field2"]);
    context.Response.Write("\n");
}