首先,我确信我错过了导航到并加载部分视图的最佳实践方法。所以,如果我以错误的方式解决这个问题,请告诉我。我有一种感觉,我让它变得比它需要的更难。
我想要实现的是让我的网站表现得像单页应用。为了做到这一点,我在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()
?
答案 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.
}
您无法直接检测元素何时更改其可见性并运行某些脚本,此处您可以控制它何时变为可见,因此一旦您将该方法显示就调用该方法。