Chapter 3: Develop the user experience
Plan for search engine optimization and accessibility
- 使用analytical tools分析HTML,如SEO toolkit from MS, Webmaster Tools from Google, W3C Markup Validation Service
- 使用Browser插件观察结构,如IE的F12可打开developer Toolbar。
- WAI-ARIA for accessibility
Plan and implement globalization and localization
- planning a localization strategy
- 从HTTP头的Accept-Language取得browser的preferred language,但要设置<system.web>的<globalization culture="auto" uiculture="auto" enableclientbasedculture="true" />
- 使用resource到UI
- 使用resx file
- 在client端使用globalize.js
- client端主动设置culture
- 使用satellite assemblies,使用al.exe生成satellite dlls.
Design and implement MVC controllers and actions
- attributes和filters
- RequireHttpsAttribute
- ValidateAntiForgeryTokenAttribute
- ValidateInputAttribute
- AuthorizeAttribute
- ChildActionOnlyAction
- ActionFilterAttribute
- OnActionExecuting
- OnActionExecuted
- OnResultExecuting
- OnResultExecuted
- 使用attributes
- on the action iteslf
- on controller level
- through global filters,如filters.Add(new RequireHttpsAttribute());
- 实现action的行为
- 实现action的result
- ContentResult
- EmptyResult
- FileResult
- JavaScriptResult
- JsonResult
- PartialViewResult
- RedirectResult
- RedirectToRouteResult
- ViewResult
- 实现model binding
- DefaultModelBinder
- LinqBinaryModelBinder
- ModelBinderAttribute
- ModelBinderDictionary
weakly-typed style,如@Html.TextBox("login.UserName")
使用Bind attribute,
如public ActionResult Login([Bind(Prefix="login")]LoginUser user)
public ActionResult Save([Bind(Exclude="Salary")]Employee emp)
使用value provider取model
- FormsValueProvider
- QueryStringProvider
- HttpFileCollectionValueProvider
- RouteDataValueProvider
Design and implement routes
- 使用MapRoute定义一个route
- 使用route的限制,如 new {id=@"\d+"}
- ignore一个route
- Adding custom route parameters
- 使用area
Control application behavior by using MVC extensibility points
- 使用filter和controller factory
- Authorization
- Action
- Result
- Exception
- 通过action result控制,override ExecuteResult() of System.Web.Mvc.ActionResult
- 通过view engine
- 通过model binder
- 通过route handler
Chapter 3: Develop the user experience的更多相关文章
- Chapter 2: Design the user experience
Apply the user interface design for a web application 介绍了Css的常用属性和html5的新element,以及Htmlhelper的简单方法,如 ...
- halcon算子
halcon的算子列表 Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样 ...
- halcon的算子列表
Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...
- Halcon 常用算子使用场合
Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...
- Halcon算子解释
Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1. ...
- [eBook]Inside Microsoft Dynamics AX 2012 R3发布
最近一本关于Microsoft Dynamics AX 2012开发的书<Inside Microsoft Dynamics AX 2012 R3> 发布. Book Descriptio ...
- Halcon算子含义
1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训练数据上. 2.classify_class_gmm ...
- Girl Develop It Chapter Leaders at 2015 Annual Leadership Summit
Girl Develop It Chapter Leaders at 2015 Annual Leadership Summit Corinne Warnshuis, Executive Direct ...
- Android Programming: Pushing the Limits -- Chapter 4: Android User Experience and Interface Design
User Stories Android UI Design 附加资源 User Stories: @.通过写故事来设计应用. @.每个故事只关注一件事. @.不同的故事可能使用相同的组件,因此尽早地 ...
随机推荐
- js拖拽效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Fragment中的onKeyDown事件让Activity处理--处理特殊按键比如移动终端扫描
一些特殊按键事件需要在Activity中处理public void onKeyDown(int keyCode, KeyEvent event){ //让Activity处理 getActivity( ...
- ie6下js更新元素display:block后,仍然不显示的hack办法
$hotGames.html(html).removeClass("hide").show();//代码执行到这里,在ie6下仍然无法正常显示 //只有执行了下边的两行代码后,才正 ...
- jQuery Ajax MVC 下拉框联动
无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List<SelectListItem> Tea ...
- STM32系列单片机IO口模式设置
STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和 ...
- Spring中的自动装配
src\dayday\Person.java package dayday;/** * Created by I am master on 2016/11/28. */public class Per ...
- docker 源码分析 五(基于1.8.2版本),Docker容器的创建
前面讲到了docker容器得镜像,镜像其实是docker容器的静态部分,而docker容器则是docker镜像的动态部分,即启动了一个进程来运行,本篇最要来分析一下怎样创建并运行一个容器. 创建一个容 ...
- matlab中的数据结构
一.cell 1. function: num2cell(A,n) n表示如何把A中的数据转换为cell. n=1表示把每列的所有行转换为cell:n=2表示把每行的所有列转换为cell. >& ...
- Linux下memcache的安装
memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.目前用memcache解决互联网上的大用户读取是非常流行的一种用法,在互联网企业中有着广泛的应用.关 ...
- 重写代码生成器支持模板(多层架构,MVC),多语言c#,java;支持mysql和sqlserver,动态编译
多年前用过李天平前辈的,自己改过,后来李老师做动软了,不给源码,修改不是很方便.加上我目前需要转java方向,于是决定自己搞.到目前为止花了整整一个星期了,看看目前的成果. 最后是代码工程文件,用c# ...