jquery - 如何插入jQuery代码? Uncaught ReferenceError : $ is not defined in view razor code

标签 jquery asp.net asp.net-mvc asp.net-mvc-4

我在文件末尾有以下 Asp.Net MVC 4 razor 代码。

....
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

<script type="text/javascript">
    $('#Address_State').val('MA');
</script>
////// End of file

但是,它生成了以下 html 代码。它会在 $('#Address_State').val('MA'); 行引发错误。错误消息为Uncaught ReferenceError:$未定义。如何在razor文件中插入jQuery代码?

.....
<script type="text/javascript">
    $('#Address_State').val('MA'); // Uncaught ReferenceError: $ is not defined
</script>
            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; 2013 - Paperspeed</p>
                </div>
            </div>
        </footer>

        <script src="/Scripts/jquery-1.9.1.js"></script>


    <script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>


    </body>
</html>

更新:

以下是_Layout.cshtml的最后四行。

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>

最佳答案

在实际使用之前,您需要包含 JQuery。

实现此目的的常见方法是在主布局的头部包含您的 require 脚本。或者放置一个可选部分(标题),您可以在其中有条件地包含脚本

首先为每个页面上想要的 jquery 脚本创建一个必需的包:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/js/required").Include(
        "~/Scripts/jquery-2.0.2.js"));

    //other bundles
}

然后创建一个网站模板:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Title</title>
    @Styles.Render("~/css/required")
    @RenderSection("head", false) //For css on a page by page basis
</head>
<body>
    @RenderBody()
    @Scripts.Render("~/js/required") //Here add your jquery include
    @RenderSection("scripts", false) //Here you add scripts at the bottom of the page
</body>
</html>

然后使用此 razor 文件作为所有其他派生 razor View 的基本布局,如下所示:

@{
    ViewBag.Layout = "~/Views/Shared/_MasterLayout.cshtml";
}

@section head {
     //Any css you want to add
}

<p>Some html content</p>

@section scripts {
    //scripts you want to include at the bottom on a page by page basis
}

关于jquery - 如何插入jQuery代码? Uncaught ReferenceError : $ is not defined in view razor code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458523/

相关文章:

javascript - 点击队列功能

asp.net - "Unified Modelling Language"的简单解释,为什么它很重要?

asp.net - 当页面显示在 jQuery 对话框和 iFrame 中时调整图像大小

javascript - 如何在asp中获取表行的n个数字输入类型的值?

jQuery ContextMenu 通过 swisnl 更改文本大小或字体

asp.net-mvc - 从类中删除必需的属性,但MVC3仍然不会在文本框中没有值的情况下发布表单

javascript - MVC 5 捆绑文件显示为挂起

ASP.NET MVC 重定向到操作不会呈现最终 View

javascript - 了解 jQuery 初始化

c# - 尽早控制大文件上传请求