내 aspx 페이지에 다운로드 링크가 있습니다. 그것을 클릭하면 다운로드하기 전에 파일을 수정 한 데이터를 입력하라는 팝업이 나타납니다.ASPX 페이지의 팝업에서 파일 다운로드 일반 처리기를 통해
팝업을 통해 생성 된 요청을 파일을 생성하고 응답 헤더에 추가하는 코드가있는 일반 처리기로 전달했습니다.
이제 코드가 최적화되었거나 기본 프레임이 호출 스택 맨 위에 있으므로 표현식을 평가할 수 없습니다. 스레드 예외 예외가 발생했습니다.
팝업 때문에 클라이언트가 응답 헤더를 해석하지 못했을 것으로 생각됩니다.
ASPX 팝업 버튼 :
<button id="BtnDownload" class="btnSubmit" onclick="javascript:downloadFileViaHandler()">
Download</button>
자바 스크립트 기능 :
function downloadFileViaHandler() {
$('#popupdiv').dialog('close');
var urlHandler = "/WebHandlers/downloadHandler.ashx";
var urlHandlerParam = window.location.href.split('/');
var actualUrlparam = urlHandlerParam[0] + "/" + urlHandlerParam[1] + "/" + urlHandlerParam[2] + "/" + urlHandlerParam[3];
//Sanitize URLs for Server
var urlHandler = actualUrlparam + urlHandler;
$.ajax({
type: 'POST',
async: false,
url: urlHandler,
data: { FileID: '' + FileID + '\'' },
success: function (data) {
console.info(data);
},
error: function() {
alert("Error occured while Downloding File");
}
});
}
처리기 코드 :
를 내가 잘못 가고 어디 코드 조각을 찾아 알려주세요public void ProcessRequest(HttpContext context)
{
//some Logic to generate file//
string filePath = str_SaveFileLocation;
DownloadFilePath = (str_SaveFileLocation);
string name = Path.GetFileName(DownloadFilePath);
string ext = Path.GetExtension(DownloadFilePath);
string Filetype = "text/DBC";
context.Response.Clear();
context.Response.AppendHeader("content-disposition", "Downloads; filename=" + name);
context.Response.ContentType = Filetype;
context.Response.WriteFile(DownloadFilePath);
context.Response.End();
}