我有一个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());
    }
有帮助吗?

解决方案

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

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

其他提示

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top