停止在Load上调用Html.Action

时间:2015-06-16 06:33:37

标签: javascript jquery html asp.net-mvc

我在父视图中有div以下,Html.Action下面有PartialView

<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,但仍然会重复调用该操作。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

Html.Action将在加载视图时执行操作。由于您不想要这个,您需要异步加载数据。

您可以在自定义data-*属性中存储网址,以生成网址使用Url.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');
});