运行特定于视图的javascript代码

时间:2014-03-13 17:04:11

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

在我的ASP.NET MVC4应用程序中,我为整个站点的功能提供了1个javascript文件。 这工作得很好 - 但是我想在某些视图中运行某些代码。 通常我会通过在视图中调用所需函数的简短脚本标记来解决这个问题。 但是我将我的js文件加载到body标签的底部,这样这个脚本标签会在加载之前调用一个函数,这显然不起作用。

如何在不同视图中调用js文件的各个部分,同时将js文件保存在正文的底部?

3 个答案:

答案 0 :(得分:1)

这里有一些事情发生。

  1. 我不会直接在页面中放置JavaScript。很多原因,并不是你问题的焦点,而是我想提出的。

  2. 您可以在主JS文件之后加载一个单独的JS文件,该文件实际上是对#34; main"中的函数进行调用。

答案 1 :(得分:0)

我的方法是使用id标记所述视图:

<div id="specific-page-name"></div>

然后在我的javascript中简单地执行:

if ($('#specific-page-name').length) {
    // Run code
}

这样您仍然可以将您的视图与js代码分开。

最后,如果我必须在js中使用模型数据,我可以执行以下操作:

<div data-model-data="@Model.Data"></div>

简单地将其读作:

$('div').data('model-data');

答案 2 :(得分:0)

我详细说明了Matt在他的评论中给出的答案:在你的布局中,你可以指定你想要一些额外的HTML内容(在你的情况下,这将是你的JS)。您将要在主JS块之后添加它。

@RenderSection("AddScripts", required: false)

然后在您的视图中,您可以添加一个部分,但它不会在视图中呈现,而是在布局的相应部分中(在主JS块之后)。

@section AddScripts {
<script type="text/javascript">
 ...
</script>
}