原文地址:jQuery ajax with asp.net mvc preview 5
原文作者:Chris van de Steeg
最近花了一点时间来将我的jquery4mvc项目更新到preview 5,以适应mvc p4到mvc p5的一些改变。阅读此文请确定阅读了scott’s post 介绍的preview 5的新特性。他也将在不久发布关于ajaxhelpers的文章。如果你想跳过阅读而直接下载jquery4mvc:请点击 codeplex。
jquery4mvc Javascript包只包含了3个javascript文件,并允许使用微软默认的AjaxHelper。你只需要把这3个文件拷贝到你的Content目录中并在head节中引用它们,就可以替代MicrosoftAjax.js和MicrosoftMvcAjax.js。jQuery 可以完美的替代MicrosoftAjax来完成所有的AJAX功能。令人兴奋的一点是,它将对你的ajax链接支持前进与后退按钮。
这样,我们可以继续像以前一样使用AjaxHelper 的功能。虽然在preview 5中AjaxHelpers 有一些变化,如果你没有更新AjaxHelper,你仍然可以通过Scott Hanselman 的文章ASP.NET MVC Preview 4 - Using Ajax and Ajax.Form 的介绍来了解它。需要注意的改变就是在preview 5中你不能在AJAXOptions中使用inline javascript,现在你必须指定方法的名称。你也可以下载整个jQueryMvc项目,它包含了一个网站示例来展示jQueryMvc的特性。
讨论的更多的其实是项目中的.js文件!这个项目的目的是为了当你想创建一个基于mvc的Ajax应用程序时,可以更快的实现并运行它。我们使用了统一的默认的Ioc容器。
我想为你准确的描述这个项目是什么是非常困难的,最好的方式只要浏览一下示例网站的代码,这里我还是作一个简要的介绍。首先,我们有一个DefaultView视图引擎。如果你用[DefaultView] 属性标记你的控制器,如下:
如果你打开示例的/Home/Index,Index视图将默认的被搜索到。如果没有发现它,DefaultView视图引擎将搜索指定的视图名(如示例中的default)。你的视图使用的什么视图引擎没关系,它将为所有的视图工作。可以这样做吗?我们来看一下示例中的视图目录结构。
你可以看到,大部分的视图只有一个以下划线为前缀命名的ascx 文件。因为当action Home/About, Home/SayHello, Home/Index被调用时,这些视图将不会被检索到,DefaultView视图引擎将打开Shared/Default.aspx。
你可以看到,它只是调用了masterpage。但是可以稍微的想一下,你可以为每个controller创建不同的默认页面。像masterpage一样,如下代码:
这个特别的contentplaceholder,像普通的placeholder一样工作。但是,它并不从页面中获取新的内容,它将通过调用视图引擎来打开对就action的对应下划线的视图。所以,如果你调用Home/About,它将调用Home/_About。很神奇吧?其它页面同样,你只需要创建一个ascx文件(或者其它部分假如你使用另外的视图引擎)。这部分视图要被填充到主页面中去。
稍等下,还有更多!如果你使用一个Ajax请求到使用了[AjaxController]属性的controller ,它将只返回.ascx那部分的视图。实在是太好了!与updatepanel 非常相似!
Go to codeplex and download the project to see the ajax-magic I’m so excited about!
源代码也可以到Google code下载:http://code.google.com/p/jquerymvc/source/checkout
示例网站的在线演示:http://www.chrisvandesteeg.nl/demo/jquerymvc5/
posted @ 2008-10-04 14:46
太阳 阅读(1535)
评论(6) 编辑 收藏 网摘 所属分类:
ASP.NET MVC