想要从@ Html.ActionLink弹出模式弹出html文件

时间:2018-03-07 02:57:54

标签: jquery asp.net-mvc bootstrap-modal

我想在@Html.ActionLink弹出的模式中打开html文件。我在ExampleUrl中给出了从数据库中获取的路径。我已经编写了JQuery来执行此操作,但FileName未定义。有人请指导我。

 //My code

 @Html.ActionLink("Example", "#", new { FileName = item.ExampleUrl }, new { @data_toggle = "modal", @data_target = "#myModal" })

// JQuery的

$('#myModal').on('show.bs.modal', function (e) {
            debugger;
            var dataURL = $(this).attr('data-FileName');
            $('.modal-body').load(dataURL, function () {
                $('#myModal').modal({ show: true });
            });

        });

我的模态

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
               ...

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:2)

我不知道您为何使用@ Html.ActionLink打开模型弹出窗口。最好使用普通按钮,并避免使用一些附加代码来调用服务器端方法,如下所示。

使用按钮

触发模态
   <button type="button" class="btn btn-success openBtn" data-url="@item.ExampleUrl">Open Modal</button>

模态

<div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">
            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Modal with Dynamic Content</h4>
                </div>
                <div class="modal-body">

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

现在从Bootstrap模式弹出窗口中的外部URL加载内容。

<script>
$('.openBtn').on('click',function(){
    var url = $(this).attr("data-url") //your page url
    $('.modal-body').load(url,function(){
        $('#myModal').modal({show:true});
    });
});
</script>

编辑:如果要将文件放在View文件夹中,只需将以下代码放在web.config文件中,以便访问js和html等静态资源。

<system.webServer>
<handlers>
  <add name="JavaScriptHandler" path="*.js" verb="*"
     preCondition="integratedMode" type="System.Web.StaticFileHandler" />      
  <add name="HtmlScriptHandler" path="*.html" verb="*"
     preCondition="integratedMode" type="System.Web.StaticFileHandler" />
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>