MVC2区域中的Jquery($未定义)

时间:2011-04-18 16:58:26

标签: jquery asp.net asp.net-mvc-2 jquery-ui master-pages

我正在通过使用MVC 2领域变得绝望。我有一个MVC 2应用程序。该应用程序的一部分是称为“标记”的区域。我的应用程序中的所有视图都具有相同的主页。 我的主页面在我的主应用程序中,头部看起来像这样:

<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../../../Content/Site.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="../../../../Content/jquery.autocomplete.css" />
<script src="../../../../Scripts/NewFolder1/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="../../../../Scripts/NewFolder1/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>


<style type="text/css">
    .style1
    {
        width: 50px;
        height: 34px;
    }
</style>

在我的mainapplication的Index页面中,我输入此代码并显示一个漂亮的tab控件:

<script type="text/javascript">
    $(function () {

        // Tabs
        $('#tabs').tabs();

        //hover states on the static widgets
        $('#dialog_link, ul#icons li').hover(
                function () { $(this).addClass('ui-state-hover'); },
                function () { $(this).removeClass('ui-state-hover'); }
            );

    });
    </script>

    <style type="text/css">
        /*demo page css*/
        body{ font: 62.5% "Trebuchet MS", sans-serif; margin: 50px;}
        .demoHeaders { margin-top: 2em; }
        #dialog_link {padding: .4em 1em .4em 20px;text-decoration: none;position: relative;}
        #dialog_link span.ui-icon {margin: 0 5px 0 0;position: absolute;left: .2em;top: 50%;margin-top: -8px;}
        ul#icons {margin: 0; padding: 0;}
        ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left;  list-style: none;}
        ul#icons span.ui-icon {float: left; margin: 0 4px;}
    </style>    


    <!-- Tabs -->
    <h2 class="demoHeaders">Tabs</h2>
    <div id="tabs">
        <ul>
            <li><a href="#tabs-1">First</a></li>

            <li><a href="#tabs-2">Second</a></li>
            <li><a href="#tabs-3">Third</a></li>
        </ul>
        <div id="tabs-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
        <div id="tabs-2">Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div>
        <div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>

    </div>

但是当我在我所在区域的页面中输入相同内容时,每个萤火虫都会显示异常:“$未定义”

它必须是我的路由,我的注册看起来像这样:

  context.MapRoute("Market with language", "{culture}/Market/{controller}/{action}/{id}", new
        {
            controller = "Home",
            action = "Index",
            id = UrlParameter.Optional,
        }, new { culture = "de|en" });

Firebug以红色显示此请求:http://localhost:12737/de/Scripts/NewFolder1/jquery-ui-1.8.11.custom.min.js

我的结构如下:

    Mainapplication
    -scripts
    --folder1
    ---jsscripts
    -views
--shared
    ---masterpage.aspx
    -areas
    --market
    ---views
----viewone.apsx

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:3)

您的脚本未解析,可能是使用示例中的相对路径的路由/链接问题。您可以通过检查Firebug / Fiddler的控制台输出来确认。

尝试使用ResolveUrl方法。

<script src="<%= ResolveUrl("~/Scripts/NewFolder1/jquery-1.5.1.min.js") %>" type="text/javascript"></script>