使用Scripts.Render MVC4时的Javascript全局变量

Ric*_*eMN 2 javascript render global-variables asp.net-mvc-4

我有一个利用javascript捆绑的MVC 4项目.

在我的_Layout.cshtml页面中,我有这样的事情:

    @Scripts.Render("~/bundles/scripts/desktop/modernizr",
        "~/bundles/scripts/desktop/jquery","~/bundles/scripts/desktop/jqueryui",
        "~/bundles/scripts/desktop/jqueryvalidation", "~/bundles/scripts/custom")
Run Code Online (Sandbox Code Playgroud)

还有其他人,但这只是一个例子.在我在自定义脚本中调用的一个脚本中,我需要引用在ready函数中设置的全局变量,如下所示:

  <script type="text/javascript">                   
     $(function () {            
         //alert('Page is ready!');
         var warning = 10;
         var timeout = 20;   }); </script>     
Run Code Online (Sandbox Code Playgroud)

问题是,我总是在需要警告和超时变量的方法中得到错误.关于我应该如何创建这些变量,我是否遗漏了一些明显的东西(不是我!)我应该var在外面$Ready,因为在页面技术准备好之前js正在加载吗?

全局变量应该去哪里,如果所有内容都已经在渲染包中并且没有脚本块?

谢谢!

p.s*_*w.g 5

warningtimeout变量不是全局性的.它们仅在您为$函数提供的函数中定义.

我通常建议尽可能避免全局变量,但如果你真的想创建全局变量,只需使用:

<script type="text/javascript">
   var warning = 10;
   var timeout = 20; 
</script>     
Run Code Online (Sandbox Code Playgroud)

或这个:

<script type="text/javascript">
   $(function () {
       window.warning = 10;
       window.timeout = 20;   
   });
</script>     
Run Code Online (Sandbox Code Playgroud)