jQuery代码不能与MVC3站点一起使用

时间:2011-11-17 10:44:39

标签: c# javascript jquery asp.net-mvc-3

我想突出显示我的元素,并添加一个jquery的链接。

我的代码:

@model IEnumerable<Mvc3Demo.Products>

@{
    ViewBag.Title = "List";
}

<h2>List</h2>
<script type="text/javascript" src="../../Scripts/jquery-1.5.1.min.js" />
<script type="text/javascript">
    $(document).ready(function () {
        $('#productList li').hover(
            function () {
                $(this).css({ 'background': 'green', 'cursor': 'pointer' });
            },
            function () {
                $(this).css('background', '');
            }
        ).click(function () {
            window.location = 'Product/Edit/' + $(this).attr('productid');
        });
    });
</script>

<ul id="productList">
@foreach (Mvc3Demo.Products p in Model)
{
    <li productid="@p.ProductsID">
        @p.Name
        <!--@Html.ActionLink("Bearbeiten", "Edit", "Product", p, null)-->
    </li>
}
</ul>

布局页面:

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
</head>

<body>
    @RenderBody()
</body>
</html>

将发现JQuery,这不是错误(我用firebug证明它)

错误:

Firebug中没有错误,没有突出显示,也没有链接

请帮忙

3 个答案:

答案 0 :(得分:1)

我已将您的示例中输出的HTML into a fiddle放在上面。如您所见,它似乎正常工作。

您对jQuery的引用中的URL是否正确?

答案 1 :(得分:0)

尝试输入

<script type="text/javascript" src="../../Scripts/jquery-1.5.1.min.js"></script>

而不是

<script type="text/javascript" src="../../Scripts/jquery-1.5.1.min.js" />

答案 2 :(得分:0)

你的布局页面中有没有破坏jQuery功能的东西? 尝试从布局中取消绑定页面并单独测试它。 或者发布您的布局页面,让我们看看它可能出现的问题......

在看到布局页面后编辑:

有错误。你已经在布局页面中有了jquery引用。这会导致错误。只需从您的页面中删除引用,留下布局中的引用),一切都将正常工作。 我创建了一个小型项目来测试它。

PS:我仍然不明白为什么2个对同一个javascritp文件的引用会导致错误:/