当前位置 > 首页 > 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"

  • UpdatePanel终于可以上传文件了!

    2007-3-26 21:46:00

    摘要: UpdatePanel终于可以上传文件了!我们要做的,只是在页面上添加一个控件而已。 阅读全文 Jeffrey Zhao 2007-03-26 20:23 发表评论

  • Spring.NET学习笔记1——控制反转(基础篇)

    2009-10-25 2:50:00

    摘要: 在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC)。  控制反转(Inversion of Control,英文缩写为

  • 需求入门: 需求工程=需求开发+需求管理

    2009-11-6 2:18:00

    阅读: 121 评论: 2 作者: 快乐学习 发表于 2009-11-05 22:36 原文链接   上图是需求工程的组成部分,从图中可以看出, 需求工程 划分为两个部分: 需求

  • ASP.NET 4.0: Writing custom output cache providers

    2009-11-19 21:43:00

    Until now we can use ASP.NET default output cache. We don’t have any option to write our own output

  • NUMA架构

    2009-12-27 3:05:00

    阅读: 263 评论: 0 作者: geff zhang 发表于 2009-12-26 23:03 原文链接 最近在学习.NET的并行计算技术,学到一个服务器NUMA架构,NUMA架构在中

  • 手把手教你写ORM(三)

    2007-1-24 12:27:00

    昨天处于晕死状态,少写了一个组件,还需要一个组件用来专门管理Cache的,这里说道为什么要分这么多组件,其实这是习惯问题,很多人喜欢写一个很大的DLL,不过我比较喜欢拆分,小粒度的项目比较好管理和单

  • 《.NET设计规范》——学习笔记(2)框架设计的基本原则

    2007-9-7 17:46:00

    由于我怕文章的篇幅过长会使人看了头痛,所以,我打算分几篇文章把《.NET设计规范》第二章的学习笔记写出来,这样大家看着不至于太累!大概是接下去总共五篇文章是说“框架设计基础”的......

  • 信息系统开发平台OpenExpressApp - 内置支持的模块类型

    2009-11-12 16:01:00

    阅读: 167 评论: 0 作者: 快乐学习 发表于 2009-11-12 14:34 原文链接   信息系统组成层次可以按照下图所示层次进行划分:系统-子系统-主模块-辅助模块/对象。在

  • Visual Studio Scrum 1.0

    2010-7-26 11:50:00

    [原文发表地址]: Visual Studio Scrum 1.0 [原文发表时间]:20 Jul 2010 12:30 PM 昨天我们发布了Microsoft Visual Stu

  • 编码人员和测试人员:争论的秘密

    2007-7-13 19:16:00

    相信很多团队都有这个问题:编码人员和测试人员经常争论。测试人员说编码人员做的东西太烂,问题太多,缺乏规范,开发文档也没有;编码人员说测试人员责任心有问题,测完了还是令自己不放心;还有很多人认为“如果