Мне нужно загрузить определенные файлы при нажатии на какой-либо текст. Я ожидаю, что типичный диалог «Сохранить как ...», чтобы выбрать, где я должен был сохранить файл, но он не отображается. Запрос и ответ в порядке.Сохранить файл с запросом «Сохранить как ...» с помощью FileResult
заголовок запроса/ответа
GET/Голосование/GetSurveyFile опрос = 1085 & surveyFileType = 2 HTTP/1.1
Хост: локальный: 50518
соединения: держать-жив
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, как и Gecko) Chrome/44.0.2403.107 Safari/537,36 OPR/31.0.1889.99
Accept: /
X-Requested-With: XMLHttpRequest
================ ======
HTTP/1.1 200 OK
Cache-Control: частный
Content-Type: применение/октет-поток
Сервер: Microsoft-IIS/8.0
X-AspNetMvc-Версия: 5.2
Content-Disposition: вложение; имя файла = "1052__1183__1291__Variable Заголовок Definition.txt"
X-Сеть САШ-версия: 4.0.30319
X-исходников,??? = UTF-8 B UzpcVlNTb3VyY2VcUHJvamVrdGVcTU1JXGJmdWVudGVzXE1NSVxNaW5kc2hhcmUuTU1JXE1NSVxTdXJ2ZXlcR2V0U3VydmV5RmlsZQ == =
Persistent-Auth : истинная
X-Powered-By: ASP.NET
Дата: Пн, 17 августа 2015 14:21:48 GMT
Content-Length: 333
Мой код:
Javascript
function getfile(filetype) {
var SurveyId = $('#SurveyID').val();
var url = '/Survey/GetSurveyFile';
$.ajax({
type: 'GET',
url: url,
data: { survey: SurveyId, surveyFileType: filetype },
success: function (result) {
// ?
},
error: function (result) {
// handle errors
location.href = "/Home/"
}
});
}
Контроллер
public FileResult GetSurveyFile(string survey, string surveyFileType)
{
try
{
var tmpSurvey = EntityModelDataProvider.GetSurveyByID(int.Parse(survey));
var tmpSurveyFileTypes = EntityModelDataProvider.GetSurveyFileTypes();
var tmpSurveyFileType = tmpSurveyFileTypes.FirstOrDefault(_sft => _sft.SurveyFile_Type_Id == int.Parse(surveyFileType));
var tmpFile = EntityModelDataProvider.GetSurveyFilesBySurveyAndType(tmpSurvey.Survey_PK, tmpSurveyFileType.SurveyFile_Type_PK);
if (tmpFile != null)
{
byte[] fileBytes = tmpFile.SurveyFile;
string fileName = tmpFile.SurveyFile_Name;
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
else
throw new Exception("File not found!");
}
catch (Exception ex)
{
throw ex;
}
}
Любая идея, как я мог получить желаемое поведение?
Что делать, если вы сделаете @ Html.ActionLink ("Сохранить как ...", "GetSurveyFile", "Обзор")? Я просто не понимаю, зачем вам нужен javascript. – kipwoker
Я не хотел создавать ссылку. Вот почему я написал «щелчок на каком-то тексте». – blfuentes