Hi Guys,
Here is simplest way to return file from MVC action and display in View or Boot Strap Modal .
View :-
<button id="testbutton" type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#dummyModal">Open Modal</button>
<div class="modal fade" id="dummyModal" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h2 class="modal-title">Patient consent File</h2>
</div>
<div class="modal-body">
<div ></div>
<iframe id="dummyContent" style="width:100%; height: 700px; border:0px;"></iframe>
<div id="dummyMessage" style="display:none;" class='alert alert-info'>File not found!<br></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
Jquery :-
$(document).on("click", "#testbutton", function () {
var url = '/Patient/GetPatientConsentFile?id=49'
$('#dummyContent').attr('src', url);
});
Controller:-
public ActionResult GetPatientConsentFile(string id)
{
int ID = 0;
int.TryParse(id, out ID);
//if you data in string , then convert it to byte[]
var contents = System.IO.File.ReadAllBytes("file path");
//if you dont have file path then pass global content type ie "System.Net.Mime.MediaTypeNames.Application.Octet" or pass specific MIME type, (please go through mime type in google)
string contentType = MimeMapping.GetMimeMapping("filepath");
return File(contents, contentType);
}
this works like a charm, please do let me know if you have any concerns.
Here is simplest way to return file from MVC action and display in View or Boot Strap Modal .
View :-
<button id="testbutton" type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#dummyModal">Open Modal</button>
<div class="modal fade" id="dummyModal" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h2 class="modal-title">Patient consent File</h2>
</div>
<div class="modal-body">
<div ></div>
<iframe id="dummyContent" style="width:100%; height: 700px; border:0px;"></iframe>
<div id="dummyMessage" style="display:none;" class='alert alert-info'>File not found!<br></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
Jquery :-
$(document).on("click", "#testbutton", function () {
var url = '/Patient/GetPatientConsentFile?id=49'
$('#dummyContent').attr('src', url);
});
Controller:-
public ActionResult GetPatientConsentFile(string id)
{
int ID = 0;
int.TryParse(id, out ID);
//if you data in string , then convert it to byte[]
var contents = System.IO.File.ReadAllBytes("file path");
//if you dont have file path then pass global content type ie "System.Net.Mime.MediaTypeNames.Application.Octet" or pass specific MIME type, (please go through mime type in google)
string contentType = MimeMapping.GetMimeMapping("filepath");
return File(contents, contentType);
}
this works like a charm, please do let me know if you have any concerns.