LIKE US ON FACE BOOK

Wednesday, 15 July 2015

Display or Return any File from MVC Action and display in Bootstrap Modal

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">&times;</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.

No comments:

Post a Comment