显示部分视图时运行代码

时间:2013-09-23 01:43:52

标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-4

首先,我确信我错过了导航到并加载部分视图的最佳实践方法。所以,如果我以错误的方式解决这个问题,请告诉我。我有一种感觉,我让它变得比它需要的更难。

我想要实现的是让我的网站表现得像单页应用。为了做到这一点,我在div中有很多局部视图。我隐藏了所有div,但是活跃的div。我不确定如何在部分视图中运行代码仅在显示时

这是我在这个场景中关注的div和局部视图(这是在Index.cshtml中):

<div id="app">
    @Html.Partial("~/Views/PartialViews/App.cshtml")
</div>

这是显示部分视图的JavaScript(也在Index.cshtml中):

    function showApp(id) {
        hideAll();
        $('#txtAppId').val(id);  // This is how I'm passing data to the partial view
        $('#app').show();
    }

这很好用(至少就显示局部视图而言),但是我怎样才能在App.cshtml中获取代码,只有当它显示为时才能运行

在App.cshtml(部分视图)中:

<script>
    $(function() {
        // Note: This will execute as soon as the main page is loaded. I don't want
        //       code to execute right away, but only when this view is shown.
    });

    function doSomething() {
        // Only when this view is shown do I want code to execute here.
    }
</script>

如何在显示部分视图时运行doSomething()

1 个答案:

答案 0 :(得分:1)

在index.cshtml

中显示局部视图后调用该函数
function showApp(id) {
        hideAll();
        $('#txtAppId').val(id);  // This is how I'm passing data to the partial view
        $('#app').show();
        doSomething(); //Here invoke it.
    }

您无法直接检测元素何时更改其可见性并运行某些脚本,此处您可以控制它何时变为可见,因此一旦您将该方法显示就调用该方法。