写点什么

跟 ASP.NET MVC 一起使用 jQuery

  • 2008-09-02
  • 本文字数:1703 字

    阅读完需:约 6 分钟

最近人们对微软的 ASP.NET MVC 框架投入了越来越多的关注。ASP.NET MVC 功能强大、灵活,除了框架内包含的库之外,开发人员还可以使用其他库, jQuery 这款流行的 JavaScript 框架自然也不例外。

jQuery 是一款容易上手的 JavaScript 库,任何 Web 开发平台都可以使用,它跟 ASP.NET MVC 框架的结合尤为引人瞩目。James Estes 曾在 InfoQ 上发表过一篇文章,名为 jQuery 正在靠 1.2 版及 jQuery UI 赢得人心,谈到了 jQuery 最近的一次发布,并介绍了很多杰出的特性。

藉由 ASP.NET MVC 内置的扩展性,开发人员便可以使用第三方库,例如 jQuery。在使用 ASP.NET Webforms 的时候,如果使用 jQuery 而不是 ASP.NET AJAX,难度会比较大。

刚开始撰写本文的时候,ASP.NET MVC 的版本是 Preview 4,有些在 Preview 4 中使用的技术可能无法在早期版本中正常工作。Preview 4 可以在 CodePlex 上下载

初步配置

我不打算把它写成一篇完整的 jQuery 指南,只是简单给出几个跟 ASP.NET MVC 一起使用这款 JavaScript 库的示例。 Chad Myers 有一篇很精彩的指南,包括了如何上手。

  1. 首先要保证你有 ASP.NET MVC,所以请先从 CodePlex 上下载安装(注意:你需要运行 Visual Studio 2008 才能使用 ASP.NET MVC 框架)。
  2. ASP.NET MVC 框架装好以后,就应该已经创建好了一个新的 ASP.NET MVC Web Application 工程。
  3. 下一步,下载 jQuery ,下载 Packed 或者是 Minified 版本,然后放到上面那个工程的 Content 目录下。
  4. 添加一个对 Content 目录下 jQuery 文件的引用。

简单示例

Ryan Lanciaux 写过一篇很优秀的文章,名为 jQuery 和 ASP.NET MVC 框架,其中列出了很多在 ASP.NET MVC 框架中使用 jQuery 的关键因素。Ryan 在文章中进行了详细阐述:

首先要做的就是创建一个 ASP.NET MVC(Preview 4)工程,在 Home controller 下面创建一个新的 view 和一个 controller action,然后把下面几行字加到 view 中。

<pre id="b6kk29"><span id="b6kk30">This is red text,</span><p><span id="b6kk32">this is blue</span><span id="b6kk34">and this is green</span> </p>

右键点击 Controllers 文件夹,选择“Add New Item”,然后选择 MVC Controller 类,任务完成。下一步是创建一个 Controller Action:

接下来,我们需要创建一个 Controller Action,它可以从 Model 中返回色素值。而且我们不希望重载页面,我们希望使用 Ajax。很幸运,在 MVC 框架中我们可以使用 JsonResult 类型来完成这一点。

<pre id="b6kk38">public JsonResult RGBColors()<br id="b6kk39"></br>{<br id="b6kk40"></br> Colors.RGB color = new Colors.RGB();<br id="b6kk41"></br> return Json(color);<br id="b6kk42"></br>}

下一步,创建一个类,用来表示 model 中的颜色:

<pre id="b6kk45">namespace Colors{<br id="b6kk46"></br> public class RGB<br id="b6kk47"></br> {<br id="b6kk48"></br> public string Red = “#FF0000″;<br id="b6kk49"></br> public string Green = “#00FF00″;<br id="b6kk50"></br> public string Blue = “#0000FF”;<br id="b6kk51"></br> }<br id="b6kk52"></br>}

最后一步,用一些 jQuery 代码把一切组装在一起:

<pre id="b6kk55">$(document).ready(function() {<br id="b6kk56"></br> $.getJSON(“/Home/RGBColors”,<br id="b6kk57"></br> {},<br id="b6kk58"></br> function(data){<br id="b6kk59"></br> $(“.red”).css(“color”, data.Red);<br id="b6kk60"></br> $(“.blue”).css(“color”, data.Blue);<br id="b6kk61"></br> $(“.green”).css(“color”, data.Green);<br id="b6kk62"></br> });<br id="b6kk63"></br>});

Ryan 指出了一处重要的地方:

注意,jQuery 代码是在我们的 controller 上调用 JSON 方法。如果我们重载页面,它就会得到 model 中定义的色素值。完全无痛。它很简单,但在 Web 上使用的时候却可以千变万化。

上面这个例子简单演示了如何使用 JSON,Ryan 和他的兄弟 Joel 写了一个 Theme Generator Tool ,里面有完整的应用。另外敬请留意,在撰写本文的过程中,微软已经发布了 ASP.NET MVC 框架的 Preview 5 版本。

查看英文原文 Using jQuery with ASP.NET MVC

2008-09-02 20:016020
用户头像

发布了 197 篇内容, 共 62.8 次阅读, 收获喜欢 21 次。

关注

评论

发布
暂无评论
发现更多内容

记一次腾讯云(西安)后台开发面试经历

z小赵

面试 分布式 高并发

手把手教你从零开始使用python编写大型冒险类游戏01之游戏介绍

Geek_8dbdc1

数据治理第一步,摆脱“手工作坊”

KAMI

大数据 数据治理 数据开发 数据平台

抽象类、接口、Trait

书旅

接口 面向对象 抽象 对象 Trait

Git设置分支保护实现CodeReview卡点

陈磊@Criss

知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?

yes

kafka Netty Timer ScheduledThreadPool 时间轮

【DevOps】我们忽视了Daily Build(每日构建)吗?

Man

DevOps jenkins 每日构建

契约测试:解决微服务测试的问题

陈磊@Criss

区块链一新基建 新动能 新发展大会将在南昌举办

CECBC

新基建 区块链技术

MySQL-技术专题-共享锁与排他锁

码界西柚

Flexible Box Layout 原理剖析

coolion

CSS 大前端

为什么修改hosts不立即生效?--浏览器DNS缓存机制分析

陈磊@Criss

Python中的单下划线和双下划线使用场景

wangkx

Python Python基础知识 Python基础

Golang+Flutter实现聊天APP

Alber

IM Go 语言

架构师训练营 - 第十周作业

坂田吴奇隆

并不想吹牛皮,但!为了把Github博客粉丝转移到公众号,我干了!

小傅哥

Java 小傅哥 博客 微信公众号

架构师训练营 - 第 7 周命题作业

红了哟

Go: Goroutine, 系统线程和CPU管理

陈思敏捷

mpg Go 语言

Dubbo2.7试用

心平气和

dubbo 灰度 hessian

LeetCode题解:88. 合并两个有序数组,双指针遍历+从前往后,JavaScript,详细注释

Lee Chen

大前端 LeetCode

鲲鹏一粤,智算万里

脑极体

想要成功,你需要的是目标与动机,目标是你的助攻,动机是你的爱人。

叶小鍵

成功学 心理学 海蒂·格兰特·霍尔沃森

MySQL 架构与历史

多选参数

MySQL 数据库 MySQL优化

MySQL-技术专题-InnoDB存储引擎

码界西柚

国内与国外区块链关键技术现状及差异

CECBC

区块链 应用技术

源码分析 | Mybatis接口没有实现类为什么可以执行增删改查

小傅哥

Java 源码分析 小傅哥 mybatis

如何隐藏你的数据库密码

Rayjun

安全 服务器

一文了解对称加密与非对称加密

我是程序员小贱

安全

用故事去理解「文件 I/O」

小林coding

操作系统 异步 文件系统 同步 非阻塞网络I/O

Git命令可视化展示,代码管理再也不愁了,建议收藏!

诸葛小猿

git git merge git rebase git fetch git reset

Github被攻击。我的GitPage博客也挂了,紧急修复之路,也教会你搭建 Jekyll 博客!

小傅哥

Java GitHub 小傅哥 博客

跟ASP.NET MVC一起使用jQuery_.NET_Robert Bazinet_InfoQ精选文章