HTTPHandler에서 이 .ashx 파일을 게시하는 페이지로 문자열을 반환하는 가장 좋은 방법

StackOverflow https://stackoverflow.com/questions/1202070

문제

FORM이 다음과 같은 ColdFusion 웹 페이지에서 게시되는 ASP.Net HTTPHandler가 있습니다.

<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 처리기가 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에서 반환되는 내용을 알고 싶다면 실제로 두 가지 방법이 있습니다.

첫 번째는 문자열을 양식(womp에서 제안한 대로)으로 반환한 다음 보조 양식을 제출하거나 다른 방법을 통해 브라우저에서 처리하는 것입니다.양식의 모든 값이 사용자가 제공하는 대신 제공되는 것처럼 보이므로 이는 제가 수행할 작업이 아닙니다.

두 번째 방법은 CF가 양식 게시 자체를 처리하는 것입니다.양식에서 전달되는 값을 CF에서 사용할 수 있다고 가정하면 CFHTTP를 사용하여 양식 게시물을 "가짜"로 만들 수 있습니다.CF는 결과를 직접 반환하고 거기에서 응답을 처리할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top