我在父视图中有belowdiv,belowHtml.Action返回aPartialView

<div id="preview" class="modal fade" role="dialog">
<div class="modal-dialog">
    <!-- Modal content-->
    <div class="modal-content">
        @Html.Action("GetPrintView", "Connector")
    </div>
</div>

我使用下面的jquery打开上面的modal
$("#printdoc").click(function(e) {
    e.preventDefault();
    $(this).attr('data-target', '#preview');
    $(this).attr('data-toggle', 'modal');
});

问题是,每当加载父级.cshtml时,它都会调用上面的Html.Action,但这只应在单击按钮时调用。我尝试使用data-url作为div,但仍在重复调用该操作。有什么帮助吗?

最佳答案

Html.Action将在加载视图时执行操作。因为不需要这样做,所以需要异步加载数据。
您可以将URL存储在customdata-*属性中以生成URL useUrl.Action。单击按钮时,使用.load()加载局部视图
HTML格式

<div class="modal-content" data-url='@Url.Action("GetPrintView", "Connector")'>
</div>

脚本
$("#printdoc").click(function (e) {
    e.preventDefault();

    var modal = $("#preview .modal-content"); //Find the element
    $(modal).load(modal.data('url')); //Fetch url and load partial view

    $(this).attr('data-target', '#preview');
    $(this).attr('data-toggle', 'modal');
});

10-05 18:32
查看更多