我在父视图中有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
,但仍然会重复调用该操作。有什么帮助吗?
答案 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');
});