我怎样才能将这个javascript移到我的aspx视图之外并进入一个单独的js文件?

时间:2013-11-26 16:53:57

标签: javascript jquery asp.net-mvc

我有一个asp.net-mvc项目,我将这些代码放在其中一个视图中:

<script type="text/javascript">

   $(document).ready(function () {

        var locations = <%= new JavaScriptSerializer().Serialize(Model.LocationArray) %>;

我想将此代码移动到单独的js文件中(原因与此问题无关)但我意识到我不能因为代码位于&lt; %%&gt;

有关如何将其“注入”单独的js文件的任何建议?

3 个答案:

答案 0 :(得分:1)

您可以在其他javascript文件中定义访问此变量。我更喜欢在变量前加上g来表示它是一个全局变量。注意加载你的javascript的顺序。

<Script type="text/javascript">
$(function(){    
  var gLocation=<%= new JavaScriptSerializer().Serialize(Model.LocationArray) %>;  
});
</script>
<script src="scriptWhichUseThisVariable.js"></script>

您也可以将此变量传递给外部javascript文件中编写的函数。

$(function(){   
  var gLocation=<%= new JavaScriptSerializer().Serialize(Model.LocationArray) %>;
  MyFunctionInCustomJSFile(gLocation);
});

确保加载其中定义了函数MyFunctionInCustomJSFile的javascript文件。还要确保在上面的代码完成执行后执行的代码块内访问它。

答案 1 :(得分:0)

在外部文件运行之前,在本地文件中设置locations值。由于值是在服务器端填充的,因此您不需要将其嵌套在.ready()

答案 2 :(得分:0)

如果是数据而不是代码,一个选项是在运行时通过AJAX加载它。