我有一个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());
}
答案 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将直接返回结果,您可以从那里处理响应。