为什么javascript或jquery代码在区域布局页面中不起作用?

时间:2012-10-07 10:30:01

标签: jquery asp.net-mvc-3

我想在我的“AdminLayout.cshtml”中添加jquery手风琴菜单。 当我在root中使用所有代码时,菜单确实有效,但是当我将它们添加到管理区域中的“AdminLayout.cshtml”时,它的JavaScript代码不起作用! 我的骚动是真的。 为什么呢?

jquery代码:

  <script type="text/javascript">
   $(document).ready(function ($) {  
       $('#accordion-3').dcAccordion({
           eventType: 'click',
           autoClose: false,
           saveState: false,
           disableLink: false,
           showCount: false,
           speed: 'slow'
       });
  </script>

Html代码:

    <ul class="accordion" id="accordion-3">
        <li><a href="#">Home</a>  <ul>
                <li><a href="#">Page 1</a></li>
                <li><a href="#">Page 2</a></li>
                <li><a href="#">Page 3</a></li>
                <li><a href="#">Page 4</a></li>
            </ul></li>
        <li><a href="#">Products</a><ul>
            <li><a href="#">Mobile Phones &#038; Accessories</a><ul>
                <li><a href="#">Product 1</a>
                    <ul>
                        <li><a href="#">Part A</a> </li>
                        <li><a href="#">Part B</a></li>
                        <li><a href="#">Part C</a></li>
                        <li><a href="#">Part D</a></li>
                    </ul>
                </li>
            </ul>
            </li>
            <li><a href="#">Accessories</a>
            <ul>
                <li><a href="#">Product 14</a></li>
                <li><a href="#">Product 15</a></li>
            </ul>
            </li>
        </ul></li>
    </ul>

并使用这些文件:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="../../Scripts/jquery.cookie.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.hoverIntent.minified.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.dcjqaccordion.2.7.min.js" type="text/javascript"></script>

3 个答案:

答案 0 :(得分:0)

我认为它是因为脚本引用URL存在错误。因此,要克服这种情况,请使用 Url.Content() 方法。它将虚拟(相对)路径转换为应用程序绝对路径。

示例:

<script src='@Url.Content("~/Scripts/jquery.cookie.js")' type="text/javascript"></script>
<script src='@Url.Content("~/Scripts/jquery.hoverIntent.minified.js")'  type="text/javascript"></script>
<script src='@Url.Content("~/Scripts/jquery.dcjqaccordion.2.7.min.js")' type="text/javascript"></script>

希望这会有所帮助!!

答案 1 :(得分:0)

在ASP.NET MVC3中,您应该使用:

@Url.Content("~/path/to/file/from/root")

在脚本代码的src属性中

答案 2 :(得分:0)

我将此行添加到我的代码中并且工作正常......

    <script src="@Url.Content("/Scripts/Admin/jquery-1.8.2.min.js")"
     type="text/javascript"></script>

谢谢大家......