2

我有一个 ASP.Net HTTPHandler,它从 ColdFusion 网页发布,其 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 文件中提出的解决方案包括保存 POST 处理程序的 .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());
    }
4

3 回答 3

13

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

public void ProcessRequest(System.Web.HttpContext context)
{
    context.Response.Write(mystring);
}
于 2009-07-29T18:20:37.140 回答
1

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

于 2009-07-29T20:16:33.477 回答
0

如果您希望 ColdFusion 知道返回的是什么,那么实际上有两种方法可以解决。

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

第二种方法是让 CF 自己处理表单。假设您的表单传递的值对 CF 可用,您可以使用 CFHTTP 来“伪造”表单发布。CF 将直接返回结果,您可以从那里处理响应。

于 2009-07-29T20:13:41.067 回答