将字符串从HTTPHandler返回到POST此.ashx文件的页面的最佳方法

时间:2009-07-29 18:14:07

标签: c# asp.net post coldfusion httphandler

我有一个ASP.Net HTTPHandler,它从ColdFusion网页上获取POST,其FORM的内容如下:

<form name="sendToHandler" action="http://johnxp/FileServiceDemo2005/UploadHandler.ashx" method="post">
<input type="hidden" name="b64fileName" value="fileservice.asmx.xml" />
<input type="hidden" name="strDocument" value="Document" />
<input type="submit" name="submitbtn"  value="Submit" />

此.Net处理程序将字符串返回到POSTing ColdFusion页面的最佳方法是什么?

编辑更新2009年8月14日:

我在.ashx文件中提出的解决方案涉及保存发布我的处理程序的.cfm文件的URL,并附加一个查询字符串,其中包含我想要与ColdFusion通信的结果字符串。我的CF同事使用此查询字符串数据的存在与否来相应地格式化.cfm网页:

public void ProcessRequest(HttpContext context)
    {
        string returnURL = context.Request.ServerVariables["HTTP_REFERER"];  // posting CFM page
        string message = UploadFile(context);    // handles all the work of uploading a file
        StringBuilder msgReturn = new StringBuilder(returnURL);
        msgReturn.Append("?n=");
        msgReturn.Append(HttpUtility.UrlEncode(TRIMrecNumAssigned));
        msgReturn.Append("&m=");  // this is just a msg with performance data about the upload operation (elapsed time, size of file, etc.)
        msgReturn.Append(HttpUtility.UrlEncode(message));
        context.Response.Redirect(msgReturn.ToString());
    }

3 个答案:

答案 0 :(得分:11)

只需将字符串直接写入ProcessRequest方法中的响应对象即可。

public void ProcessRequest(System.Web.HttpContext context)
{
    context.Response.Write(mystring);
}

答案 1 :(得分:1)

您可以从HTTP处理程序生成JSON,并使用jquery.post提交表单数据并在ColdFusion页面中获取结果。

答案 2 :(得分:0)

如果你想让ColdFusion知道返回什么,那么有两种方法可以解决它。

第一种方法是将字符串返回到表单(由womp建议),然后通过提交辅助表单或其他方式从浏览器处理它。由于看起来提供的是表单中的所有值而不是用户提供的,所以这不是我要做的。

第二种方法是让CF处理表单帖子本身。假设您的表单传递的值可供CF使用,您可以使用CFHTTP“伪造”表单帖子。 CF将直接返回结果,您可以从那里处理响应。