0

首先,我确定我错过了导航和加载部分视图的最佳实践方法。所以,如果我要以错误的方式处理这一切,请告诉我。我有一种感觉,我让这变得比它需要的更困难。

我想要完成的是让我的网站表现得像一个单页应用程序。为了做到这一点,我在 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()显示局部视图时如何运行?

4

1 回答 1

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.
    }

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

于 2013-09-23T02:01:33.240 回答