本人博客已迁移至:https://z2h.cn

精致码农 • 王亮

Be humble, communicate clearly, and respect others.

本人博客已迁移至: z2h.cn
(博客园的文章图片均已失效)
摘要: Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API。Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的一部分,微软把Web API相关的类从System.Web.Mvc 命名空间下提取了出来放在Syst... 阅读全文
posted @ 2014-10-19 23:03 精致码农 阅读(40168) 评论(40) 推荐(67) 编辑
摘要: 本文介绍 MVC 4 提供的一个新特性:捆绑(Bundle),一个在 View 和 Layout 中用于组织优化浏览器请求的 CSS 和 JavaScript 文件的技术。本文目录了解VS默认加入的脚本库当我们创建一个基本模板的 MVC 工程时,VS在Scripts文件夹中默认加入了一些JavaScript 脚本库。下面是这些脚本库的简单介绍:jquery-1.8.2.js,这个就不用解释了。jquery-ui-1.8.24.js,在jQuery 基础上的一套界面工具,包括了网页上常见的很多插件和动画特效。jquery.validate.js,用于验证用户在表单内input元素输入的数据。kn 阅读全文
posted @ 2013-11-25 12:14 精致码农 阅读(16469) 评论(16) 推荐(32) 编辑
摘要: 上一篇博文[ASP.NET MVC 小牛之路]15 - Model Binding中讲了MVC在Model Binding过程中如何根据用户提交HTTP请求数据创建Model对象。在实际的项目中,我们需要对用户提交的信息进行验证。MVC 对验证提供了较好的支持,如可以通过 Model 元数据设置验证规则、用 ModelState 来处理错误信息等。本文将介绍 Model 的各种验证及其使用。虽然 Model 验证使用起来很简单,但为了更深入的理解它,强烈建议大家在阅读本文前先阅读[ASP.NET MVC 小牛之路]15 - Model Binding。本文目录示例准备按照惯例,先创建一个MVC 阅读全文
posted @ 2013-11-22 08:10 精致码农 阅读(26234) 评论(28) 推荐(35) 编辑
摘要: Model Binding(模型绑定)是 MVC 框架根据 HTTP 请求数据创建 .NET 对象的一个过程。我们之前所有示例中传递给 Action 方法参数的对象都是在Model Binding 中创建的。本文将介绍Model Binding 如何工作,及如何使用Model Binding,最后将... 阅读全文
posted @ 2013-11-21 09:01 精致码农 阅读(32717) 评论(26) 推荐(62) 编辑
摘要: Ajax (Asynchronous JavaScript and XML 的缩写),如我们所见,这个概念的重点已经不再是XML部分,而是Asynchronous 部分,它是在后台从服务器请求数据的一种模型。MVC 框架内置了对Unobtrusive Ajax 的支持,它允许我们通过 MVC 的 Help mothod 来定义 Ajax 的特性,而不用在 View 中参杂一大段 JavaScript 代码。本文目录:普通 Ajax 使用方式在讲 MVC 中的 Unobtrusive Ajax 之前,我们先来看看 MVC 中 Ajax 的普通使用方式,读者可以在阅读后文的时候进行比较学习。新建一 阅读全文
posted @ 2013-11-20 08:58 精致码农 阅读(16318) 评论(21) 推荐(49) 编辑
摘要: 我们平时编程写一些辅助类的时候习惯用“XxxHelper”来命名。同样,在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的HtmlHelper,习惯上我们把 HtmlHelper 中的(扩展)方法叫 HtmlHelperMethod,由于使用频繁,就简单称为HelperMethod。它的作用是把生成 Html 代码的任务交给 MVC,以便 MVC 能完成很多自动处理的工作,也减少了代码量。我们在 View 中使用的Html.ActionLink、Html.BeginForm、Html.CheckBox、Html.Raw 方法等都是 HtmlHelper 阅读全文
posted @ 2013-11-19 00:31 精致码农 阅读(14537) 评论(7) 推荐(35) 编辑
摘要: 概括的讲,View中的内容可以分为静态和动态两部分。静态内容一般是html元素,而动态内容指的是在应用程序运行的时候动态创建的内容。给View添加动态内容的方式可归纳为下面几种:Inline code,小的代码片段,如 if 和foreach 语句。Html helper方法,用来生成单个或多个HTML元素,如view model、ViewBag等。Section,在指定的位置插入创建好的一部分内容。Partial view,存在于一个单独的视图文件中,作为子内容可在多个视图中共享。Child action,相当于一个包含了业务逻辑的UI组件。当使用child action时,它调用 cont 阅读全文
posted @ 2013-11-14 00:43 精致码农 阅读(41541) 评论(19) 推荐(58) 编辑
摘要: Filter(筛选器)是基于AOP(面向切面编程)的设计,它的作用是对MVC框架处理客户端请求注入额外的逻辑,以非常简单优美的方式实现横切关注点(Cross-cutting Concerns)。横切关注点是指横越应该程序的多个甚至所有模块的功能,经典的横切关注点有日志记录、缓存处理、异常处理和权限验 阅读全文
posted @ 2013-11-12 22:28 精致码农 阅读(32879) 评论(20) 推荐(70) 编辑
摘要: 继上一篇文章之后,本文将介绍 Controller 和 Action 的一些较高级特性,包括 Controller Factory、Action Invoker 和异步 Controller 等内容。本文目录开篇:示例准备文章开始之前,我们先来了解一下一个请求的发出到Action方法处理后返回结果的流程,请试着理解下图:本文的重点是 controller factory 和 action invoker。顾名思义,controller factory 的作用是创建为请求提供服务的Controller实例;action invoker 的作用是寻找并调用Action方法。MVC框架为这两者都提供 阅读全文
posted @ 2013-11-11 09:19 精致码农 阅读(20530) 评论(29) 推荐(82) 编辑
摘要: 我们知道,在 MVC 中每个请求都会提交到 Controller 进行处理。Controller 是和请求密切相关的,它包含了对请求的逻辑处理,能对 Model 进行操作并选择 View 呈现给用户,对于业务和数据的逻辑代码以及接口和辅助类库等一般都不放到 Controller 中。Controller 和 Action 的内容较多,我把它分成了两篇,也可能会分成三篇。本篇介绍 Controller 的实现、Controller 对状态数据的获取、ActionResult 和 Action 的数据传递,后续将介绍 Controller 工厂、Action Invoker 和暂时还没想好或正在学 阅读全文
posted @ 2013-10-08 23:20 精致码农 阅读(21503) 评论(12) 推荐(45) 编辑
摘要: ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,每个Area代表应用程序的不同功能模块。这对于大的工程非常有用,Area使每个功能模块都有各自的文件夹,文件夹中有自己的Controller、View和Model,但对于管理也增加了一定的难度。本文目录创建Area右键工程选择 添加->区域,弹出如下填写Area的对话框:点击添加后,工程目录结构如下:和创建一个空MVC工程结构类似,Admin Area有自己的 Controllers、Models 和 Views 文件夹,不一样的地方就是多了一个AdminAreaRegistration.cs 文件,这个文件中定义了一 阅读全文
posted @ 2013-10-02 20:35 精致码农 阅读(33628) 评论(24) 推荐(52) 编辑
摘要: 我们知道在ASP.NET Web Forms中,一个URL请求往往对应一个aspx页面,一个aspx页面就是一个物理文件,它包含对请求的处理。而在ASP.NET MVC中,一个URL请求是由对应的一个Controller中的Action来处理的,由URL Routing来告诉MVC如何定位到正确的Controller和Action。笼统的讲,URL Routing包含两个主要功能:解析URL 和生成URL,本文将围绕这两个大点进行讲解。本文目录URL Routing 的定义方式让我们从下面这样一个简单的URL开始:http://mysite.com/Admin/Index在域名的后面,默认使用 阅读全文
posted @ 2013-09-28 23:32 精致码农 阅读(30936) 评论(33) 推荐(95) 编辑
摘要: 在家闲着也是闲着,继续写我的[ASP.NET MVC 小牛之路]系列吧。在该系列的上一篇博文中,在显示书本信息列表的时候,我们是在程序代码中手工造的数据。本文将演示如何在ASP.NET MVC中使用Entity Framework从数据库中获取数据。虽然本文题目听上去比较简单,但如果你认真阅读,相信... 阅读全文
posted @ 2013-09-07 19:41 精致码农 阅读(33449) 评论(64) 推荐(51) 编辑
摘要: 在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来演示Ninject在ASP.NET MVC中的应用。为了更好的理解和撑握本文内容,强烈建议初学者阅读本文前先阅读依赖注入(DI)和Ninject。本文目录:准备工作新建一个名为BookShop的空白解决方案。在该解决方案中分别添加一个名为BookShop.WebUI的MVC空应用程序,和一个名为BookShop.Domain的类库工程。目录结构如下:两个工程添加完后,在BookShop.WebUI 阅读全文
posted @ 2013-09-04 11:53 精致码农 阅读(26378) 评论(50) 推荐(66) 编辑
摘要: 特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点。 为什么需要依赖注入 在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特征是关注点分离(separation of concerns)。我们希望应用程序的各部分组件尽可能多 阅读全文
posted @ 2013-08-07 21:37 精致码农 阅读(45876) 评论(53) 推荐(172) 编辑
摘要: Razor是MVC3中才有的新的视图引擎。我们知道,在ASP.NET中,ASPX的视图引擎依靠<%和%>来调用C#指令。而MVC3以后有了一套新的使用@标记的Razor语法,使用起来更灵活更简洁。下面通过一些简单示例让大家快速撑握Razor语法的使用。 准备工作 在演示Razor语法的使用之前,我们 阅读全文
posted @ 2013-08-02 14:39 精致码农 阅读(54126) 评论(22) 推荐(82) 编辑
摘要: 特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点。 本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语言特性。对于正在学asp.net mvc的童鞋,不防花个几分钟浏览一下。本文要回顾的C#知识点有:特 阅读全文
posted @ 2013-07-25 16:03 精致码农 阅读(36588) 评论(31) 推荐(133) 编辑
摘要: 特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点。 PS:MVC出来很久了,工作上一直没机会用。出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正。 本文目录 理解一般意义上的MVC模式 MVC模式(Model-Vie 阅读全文
posted @ 2013-07-24 17:20 精致码农 阅读(50964) 评论(15) 推荐(97) 编辑
摘要: 前言我们知道,JavaScript中没有真正的类,它是一种面向原型的语言 。这种语言一个强大的特性就是灵活,实现一个功能可以有很多不同的方式,用不同的编码风格和技巧。但随之也带来了代码的不可预测和难以维护等问题。代码量很大时,由于JavaScript 没有统一的结构,代码变得很难理解和阅读,不方便维护和重用。而像C#这种基于类的面向对象语言,它是强类型的,具有封装、继承和多态的OOP基本特征,而且都有标准的编码约定。它通过强制开发者遵循一系列的原则,让编写的代码更具有可预测性和可扩展性等优点。然而,这种语言却不能像JavaScript语言一样可以灵活使用。这两种语言各自都有他们的缺点和优点,能 阅读全文
posted @ 2013-07-10 11:42 精致码农 阅读(4215) 评论(0) 推荐(3) 编辑
摘要: 前言工作中用ExtJS有一段时间了,Ext丰富的UI组件大大的提高了开发B/S应用的效率。虽然近期工作中天天都用到ExtJS,但很少对ExtJS框架原理性的东西进行过深入学习,这两天花了些时间学习了下。我并不推荐大家去研究ExtJS框架的源码,虽然可以学习其中的思想和原理,但太浪费精力了,除非你要自己写框架。对于ExtJS这种框架,非遇到“杂症”的时候我觉得也没必要去研究其源码和底层的原理,对其一些机制大致有个概念,懂得怎么用就行,这也是本篇博文的主要目的。Ext自己的事件机制Ext中的事件遵循树状模型,和事件相关的类主要有这么几个:Ext.util.Observable、Ext.lib.Ev 阅读全文
posted @ 2013-07-06 13:30 精致码农 阅读(18625) 评论(7) 推荐(8) 编辑