如何在MVC应用程序中使用Jquery


Posted in Javascript onNovember 17, 2014

前言:转眼间,已经是11月中旬了,也从今天开始我要继续在研究ASP.NET MVC的细节用法,所以将这些读书笔记和个人心得写成博客,让大家也能学习到东西,我阅读的书籍是:ASP.NET MVC高级编程,下面我就说说MVC中如何使用JavaScript和Jquery。还有我们现在经常使用的Ajax。

1.Ajax初步介绍

(1) 现在我们创建的Web应用程序几乎都要用到Ajax技术,从技术上面讲,Ajax代表异步JavaScript和XML(Asynchronous JavaScript and XML,Ajax)。在实际应用中,他代表在构建具有良好用户体验的响应性Web应用程序时用到的所有技术。

(2) ASP.NET MVC4是一个现代的Web框架,并且他跟其他现代Web框架一样,从一开始就支持Ajax技术,Ajax支持的核心来自于开源的JavaScript库Jquery。

(3) 如果我们想要在MVC中使用Ajax,我们就要学习Jquery,关于Jquery不是这篇博客的主要,所以没有学习过的我建议初步的学习一样,我的Jquery学习来源于《锋利的Jquery》。

2.如何在MVC应用程序中使用Jquery

(1) 当使用Visual Studio项目模版创建新的ASP.NET MVC项目时,它会默认生成使用Jquery需要的所有内容,每个新项目中都回包含一个Scripts文件夹,里面带有很多个.js文件,各位可以新建一个mvc项目看看,如图所示:

   如何在MVC应用程序中使用Jquery

(2) JQuery核心库是一个名为Jquery-<version>.js的文件,因为我使用的VS是2012,所以Jquery的版本是1.7.1,这个文件中包含了JQuery源代码的可注释版本。还有一个Jquery-<version>.min.js文件,精简的JavaScript文件在他们的名称中包含了“.min”,顾名思义,他们占用的空间要小于对应的非精简文件(通常情况下要小一半)。他们不包含不必要的空白字符,也不包含注释,并且所有局部变量名称的长度都是一个字符,如果打开一个精简文件,你会看到一堆不可读的JavaScript代码。如图所示:

如何在MVC应用程序中使用Jquery

(2) 精简的JavaScript脚本文件在客户端的行为以及实现的功能与非精简文件一样,然而,由于精简文件叫较小,因此通常都是尽可能的向客户端发送精简文件(因为它可以减少下载的数据字节数,从而加快加载与运行的速度)。

(3) ASP.NET MVC应用程序中默认的布局试图(_Layout.cshtml)通常情况下用下面的脚本标签引用Jquery的精简版本:

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

注解:在MVC中如果要使用Jquery,需要将上面的脚本标签通过布局视图放在HTML标记中。

3.在节点中放置脚本

(1) 向输出中注入脚本的另一种方式是定义用来防治脚本的Razor节,例如:在布局视图(_Layout.cshtml)中,可以渲染一个名为Scripts的节点,并且将其设置为可选。代码如下:

<head>

<title>@ViewBag.Title</title>

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

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

@RenderSection("scripts", required: false);

</head>

(2)现在我们可以在引用布局的任何视图中添加脚本姐,用来向该试图的头部注入特定的脚本:Index.cshtml

@{

 ViewBag.Title = "主页";

}

@section scripts{

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>

}

(3) 这时候我们按F5运行网站,打开网站首页:http://localhost:34147/home/index,我们可以看到我们添加的jquery.validate.js文件显示在引用JS的最下面了。如图所示:

如何在MVC应用程序中使用Jquery

(4) 上面介绍的方法可以设置脚本标签的准确位置,以确保需要的脚本以合适的顺序出现。

4.Scripts目录下的其他文件

(1)下来我们探讨一下当我们创建MVC应用程序的时候,系统默认的已经为我们添加了一个文件夹Scripts,里面有很多的JavaScript文件,那么这些文件是干什么的?下面我们分开说一下

(2)除了Jquery核心库之外,Scripts目录中还包含两个Jquery插件:Jquery UI和Jquery验证,这些扩展增加了Jquery核心库的能力。

(3)有人可能也发现了在Scripts中还存在名称中包含”vsdoc”的文件,这些文件是专门协助Visual Studio更好的提供智能感知功能服务的,在程序中没必要直接引用这些文件,也没有必要把他们发送到客户端,当使用自定义的脚本文件中的引用脚本时,Visual Studio会自动发现这些文件。

(4)目录里名称中包含”unobtrusive”字样的文件是由Microsoft编写的,这些非侵入式脚本集成了Jquery和ASP.NET MVC框架,从而提供了前面提到的非侵入式JavaScript特性,如果要实现ASP.NET MVC框架的Ajax特性,就需要使用这些文件。

(5)目录中还包含一些名称以单词Microsoft开头的文件(像MicrosoftAjax.js),它们要么包含Microsoft Ajax库,要么在Microsoft Ajax库的基础上进行构建,因为ASP.NET MVC3应用程序默认依赖与Jquery,所以在ASP.NET MVC3框架下创建的程序不需要这些文件,因此可以安全的将它们从应用程序中移除,这里之所以包含这些文件,主要是为了实现向后兼容。

好了,今天就先到这里吧,详细小伙伴们已经知道如何在MVC中使用jQuery了,后续我们再来深入的探讨下

Javascript 相关文章推荐
JS获取父节点方法
Aug 20 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
Feb 26 Javascript
Javascript根据指定下标或对象删除数组元素
Dec 21 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
浅谈vuex 闲置状态重置方案
Jan 04 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 #Javascript
JavaScript数组常用操作技巧汇总
Nov 17 #Javascript
jquery 实现返回顶部功能
Nov 17 #Javascript
超棒的响应式布局jQuery插件Freetile.js
Nov 17 #Javascript
jQuery Masonry瀑布流插件使用详解
Nov 17 #Javascript
javascript将url中的参数加密解密代码
Nov 17 #Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 #Javascript
You might like
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
试用php中oci8扩展
2015/06/18 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
JavaScript中的其他对象
2008/01/16 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
使用Python封装excel操作指南
2021/01/29 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
盛大二次面试题
2016/11/18 面试题
函授毕业生自我鉴定范文
2014/03/25 职场文书
《春晓》教学反思
2014/04/20 职场文书
商务经理岗位职责
2014/08/03 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
python运算符之与用户交互
2022/04/13 Python