如何在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 版
Mar 24 Javascript
Javascript 继承机制的实现
Aug 12 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
IE下通过a实现location.href 获取referer的值
Sep 04 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
支付宝小程序tabbar底部导航
Nov 06 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
Mar 19 Javascript
webpack结合express实现自动刷新的方法
May 07 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
Nov 09 Javascript
Javascript webpack动态import
Apr 19 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下正则来匹配dede模板标签的代码
2010/08/21 PHP
调整PHP的性能
2013/10/30 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php计算整个目录大小的方法
2015/06/19 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
js里面的变量范围分享
2020/07/18 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
村长贪污检举信
2014/04/04 职场文书
就业协议书
2014/09/12 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
公司委托书格式范文
2014/10/09 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书