JQuery FancyBox с Ajax
Я посмотрел на многих веб-сайтах и многих страницах Stackoverflow, но ни один из них еще не решил мою проблему. Просто у меня естьhyperlink
и я хочу получить изображение из базы данных черезAjax
позвонить, а затем отобразить егоFancyBox
неожиданно возникнуть. Я также пробовал много разных комбинацийJavascript
а такжеController
методы действия, но не удалось, поэтому отображать загруженный файл правильно. Не могли бы вы взглянуть на мой код и привести рабочий пример, содержащий все необходимые методы вView
И вController
? С другой стороны, было бы лучше открыть диалоговое окно для других типов файлов (например, Excel, PDF) при открытииFancyBox
для файлов изображений.
Посмотреть:
<a onclick="downloadFile(@Model.ID);">@Model.FileName</a>
function downloadFile(id) {
$.ajax({
url: "/Issue/RenderImage?ID=" + id,
async: true,
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (response) {
$('#fancybox-inner').html('<img height="200" width="250" src="data:image/png;base64,' + response + '" />');
}
});
}
контроллер: Нет проблем в отношении метода в контроллере, и он возвращает изображение должным образом.
[HttpPost]
public virtual JsonResult RenderImage(int id)
{
string str = System.Convert.ToBase64String(repository.FileAttachments.FirstOrDefault(p => p.ID == id).FileData, 0, repository.FileAttachments.FirstOrDefault(p => p.ID == id).FileData.Length);
return Json(new { Image = str, JsonRequestBehavior.AllowGet });
}