当前位置 > 首页 > Asp.net

[翻译]ASP.NET MVC 3 开发的20个秘诀(十三)[20 Recipes for Programming MVC 3]:实现Ajax增强用户体验

2011-12-18 17:16:00来源:Asp.net

议题

单击链接的时候,由于网页刷新内容需要重新加载,会感觉整个过程变的非常缓慢,尤其在我们只需要更新少量内容的时候感觉更加明显。

解决方案

修改之前的示例,将Html.ActionLink 创建的链接更改为由Ajax辅助类Ajax.ActionLink创建,使链接点击时只加载需要改变的内容。

讨论

MVC框架提供了几个非常棒的辅助类。在目前为止本书使用最后的就是HtmlHelper类,几乎之前所有的视图类都至少使用过一次。在这个秘诀中,将使用AjaxHelper辅助类替换BooksIndex视图中所有的HtmlHelper辅助类。

要想实现Ajax视需要一点额外的设置才能使用的。通常情况下,也正是这点儿额外的工作阻止了开发人员使用它。但是我认为花费额外的时间去实现它是值得的,因为这将使用户在使用时获得非常好的体验。

在程序的配置文件Web.config文件中,设置ClientValidationEnabled和UnobtrusiveJavaScriptEnabled值为True

<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="ApplicationServices" connectionString=
"data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;
User Instance=true"
providerName="System.Data.SqlClient"/>
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="localhost" />
<add key="smtpPort" value="25" />
<add key="smtpUser" value="" />
<add key="smtpPass" value="" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0"

  • Jasper中的定制

    2007-5-9 22:59:00

    一。 在Jasper中,针对数据定义的具体情形,一般有三种方案: 1.数据库中的数据定义与应用中的对象模型有一一对应的关系,那么不用做任何改动,直接调用默认的API即可 2.如果数据库中

  • 深入ASP.NET MVC之六:Model Binding的实现

    2012-11-27 5:34:00

    在 Filter和Action的执行 中说到,ControllerActionInvoker对象在InvokeAction方法中调用了GetParameters方法实现了model binding

  • ASP.NET MVC中Unobtrusive Ajax的妙用

    2012-3-31 12:21:00

    Unobtrusive Javascript有三层含义:一是在HTML代码中不会随意的插入Javsscript代码,只在标签中加一些额外的属性值,然后被引用的脚本文件识别和处理;二是通过脚本文件所增

  • Launching “The ASP.NET Capsule”

    2009-3-24 0:52:00

    Hi all. After a while of thinking, I decided to create what I like to call “The ASP.NET Capsule”

  • 这是一个很容易被吓到的时代

    2009-7-22 2:54:00

    前两天,从infoq上看到了这篇" 你吓着我了,MOSS "。嗯,实际上,我想说的是: 这本来就是一个很容易被吓到的时代。 如果我在这里说,SharePoi

  • Spring.NET学习笔记6——依赖注入(应用篇)

    2009-10-26 23:43:00

    阅读: 32 评论: 2 作者: 落花吹雪 发表于 2009-10-26 23:23 原文链接   谈到高级语言编程,我们就会联想到设计模式;谈到设计模式,我们就会说道怎么样解耦合。而Sp

  • 使用存储过程,分页用户控件,jQuery进行Ajax分页!

    2007-6-5 14:44:00

    摘要: 借首页发布,使用存储过程,分页用户控件,jQuery进行Ajax分页,比较复杂,但方便扩展。提供了源码demo下载,提供了演示例子。代码有很多不完善的地方,希望各位提出。 阅读全文

  • GDI+ Error when converting Tiff to Jpeg: Parameter is not valid

    2009-12-29 8:11:00

    One of the web applications that I work on is Instant Church Directory , a website that helps chu

  • 基于MapWinGis的开发探索(四)——图层窗口、地名检索的实现

    2009-11-5 18:05:00

    阅读: 176 评论: 0 作者: ~~~呆呆~~~~ 发表于 2009-11-05 15:39 原文链接 此次开发将界面改成换成类型 Office2007 的,主要继承 Dev

  • 为ASP.NET MVC创建一个基于Mini容器的ControllerFactory

    2011-12-19 13:38:00

    背景 随着Asp.net mvc的越来越流行,关于和Mvc整合的DI容器也非常的多,而Mini容器一致没有把整合的方案发布出来,以至于不时的收到有些网友询问这些事,于是便有了该文。[ 源代