0
AJAX 호출 대신 일반 호출을 사용하는 것이 더 좋지만 다운로드 중에 문제가 발생하면 모달 대화 상자에 오류 메시지를 표시하는 것과 같은 이유로 MVC5 프로젝트에서 AJAX 호출을 사용하여 파일을 다운로드해야합니다. 여기에 내가 시도를 많이 한 후 마지막으로 한 것입니다 :ASP.NET MVC5에서 AJAX 호출을 통해 파일을 다운로드 할 수 있습니까?
보기 :
<a href="javascript:downloadFile()">Download</a>
function downloadFile() {
$.ajax({
type: 'POST',
url: '/Experiment/GetFile',
data: '{id:' + 8 + '}', //For test purpose I used static id
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (returnValue) {
window.location = '/Experiment/GetFile?id=' + returnValue;
}
});
};
컨트롤러 : 컨트롤러, 나는 그런 방법 뭔가를
하지만, 나는 AJAX Post와 성공 방법에 대해 같은 방법을 사용해야하는지 아닌지 정말 혼란 스럽다.
[HttpPost]
public ActionResult GetFile(int id)
{
var dataContext = repository.FileAttachments.FirstOrDefault(m => m.Id == id);
if (dataContext == null)
{
return Json(new { success = true, returnValue = "8" });
}
else
{
return Json(new { success = false, message= "Error..." }, JsonRequestBehavior.AllowGet);
}
}
ASP.NET MVC5에서 AJAX 호출을 사용하여이 dosnload 연산을 수행하는 현명한 방법이 있습니까?
그것의에 따라 같은 당신은보기 페이지를 편집 할 필요가 분명이의 요점은 무엇 왜 당신은 아약스 호출이 필요하다고 생각 하는가? (단지 data : {id : 8}'을 사용하고'contentType : 'application/json; charset = utf-8',')을 제거 할 것인가? –
** 1) AJAX는 MVC 프로젝트의 모든 액션을 요구하며 AJAX를 사용하기를 원했던 가장 큰 이유 중 하나는 컨트롤러에서 JSON으로 리턴 된 에러 메시지를 디스플레이하는 것입니다. 반면에, AJAX가 파일 다운로드 작업을하지 않기를 제안했다면,이 시나리오에서 단점에 대해 곧 알려 주시겠습니까? >>> –
** 2) ** 링크를 사용하여 파일을 다운로드 하시겠습니까? Javascript 메서드를 호출하여 파일을 다운로드해야합니까? 아니면 HtmlActionlink를 통해 다운로드해야합니까? –