摘要: 在Mvc R2中,新引入了一些扩展方法,如后面带一个for的方法,这些扩展方法会根据Model的属性自定生成相应的Html元素,如Html.EditFor(Model=>Model.IsApprove),当IsApproved为布尔类型时显示checkbox文本框,这样能简化我们的工作并且能够利用到ModelBinding。当我们调用Html.EditFor的时候,会调用到TemplateHelpers的方法去查找相应的模板,框架本来定义好了两个模板,就是DefaultDisplayTemplates和DefaultEditorTemplates分别对应着显示Display和Edit编辑 阅读全文
posted @ 2014-03-21 10:03 繁华落尽、 阅读(1477) 评论(0) 推荐(1) 编辑
摘要: 在ASP.NET MVC中,每个请求都被映射到一个Action方法,我们可以在action的方法中定义相应类型的参数,View中通过post、get方式提交的request参数,只要名称一致就会对应到相应的action参数,一切似乎理所当然,但是请注意我们的http是基于文本协议的,提交上去的参数应该是被认为是字符串形式,但是我们可以在action中定义string类型之外的其他参数,如int,datetime。在提交到action进行请求的过程里肯定有一个转换。 MVC框架里实现这个转换的就是DefaultModelBinder,DefaultModelBinder实现了IModelBin. 阅读全文
posted @ 2014-03-21 10:02 繁华落尽、 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 在MVC下不是通过对物理文件的映射来实行访问的,而是通过定义后的路由Url来实现访问的。在前一篇讲到我们是在全局文件下进行路由配置。routes.MapRoute("Default", "{controller}/{action}/{id}", new{ controller = "Home", action = "Index", id = UrlParameter.Optional } ); 上面方法的三个参数分别是:路由名称,匹配的Url,默认的匹配路由。 对于第二个参数是要匹配的url,以'/' 阅读全文
posted @ 2014-03-21 09:59 繁华落尽、 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 用MVC来做开发也有一段时间了,但是感觉一直没入门,就徘徊在似懂非懂的层次,和去年刚毕业学习WebForm时一样,当时通过张子阳老兄的几篇文章,明白了请求处理流程,页面生命周期才真正明白了WebForm的强大。由于MVC的学习资料比较少,牛人的技术博客也只是讲一些基础的而已。因此决定通过Asp.Net MVC源码来学习,由于是开源的,也不用Reflector作为辅助工具。首先还是明白下MVC的请求处理流程。有参考了MSDN上面的文章(http://msdn.microsoft.com/zh-cn/library/dd381612.aspx) 当应用程序第一次接受请求的时候,在Global.as 阅读全文
posted @ 2014-03-21 09:58 繁华落尽、 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用实例化方法需要new了以后才可以使用。。。。我们真的理解了吗?从实际项目开发说起,这里有开发项目的三种方式:开发项目中把BLL和DAL分开,在BLL调用DAL的代码。一、在DAL中使用静态方法,不创建实例直接调用(大概有很多人都使用这种方式开发)class DAL{public static string GetUserName(...);}在B 阅读全文
posted @ 2014-03-20 14:33 繁华落尽、 阅读(245) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;namespace 装饰模式{ class Person { public Person() { } private string name; public Person(string name) { this.name = name; } public virtual void Show() { Console.WriteLine("装扮的{0}", name); } } class Finery : Person { protected Per 阅读全文
posted @ 2014-03-20 14:31 繁华落尽、 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这是这段时间学习设计模式的时候的源代码。单例(单件)模式的五种实现。通过一个计数器的例子调用验证一下。把下面的代码直接拷进vs下,运行就可以了。(控制台应用程序)以后把剩余的设计模式有空儿就粘上来。[csharp] view plaincopyusing System; using System.Collections.Generic; using System.Text; using System.Threading; namespace NetFarmwork { class NetFarmwork { static void Mai... 阅读全文
posted @ 2014-03-20 14:29 繁华落尽、 阅读(751) 评论(0) 推荐(0) 编辑
摘要: asp.net mvc 4.0 新特性之移动特性为不同的客户端提供不同的视图手动重写 UserAgent,从而强制使用对应的视图示例1、演示如何为不同的客户端提供不同的视图Global.asax.cs/* * 为了更好地支持移动设备,mvc 4.0 带来了一些新的特性 * * 本 demo 演示如何方便地为不同客户端提供不同的视图 */using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Http;using System.Web.Mvc;using . 阅读全文
posted @ 2014-03-20 14:16 繁华落尽、 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 前言: 在c#开发中,有时候我们需要读取 Attribute中的信息(关于Attribute, 我自己把他理解成一个可以为类,属性标记的东西,这个标记可以为你提供一些关于类,方法,属性的额外信息)我们如何获取这些标记的信息,如何获取自定义Attribute信息。正文:1.获取一个枚举的详细信息假设我们有这样一个枚举public enum Category { /// /// 英语 /// English, /// /// 汉语 /// Chinese, /... 阅读全文
posted @ 2014-03-20 13:46 繁华落尽、 阅读(573) 评论(0) 推荐(0) 编辑
摘要: C#中的定制特性(Attributes)介绍Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如:帮助文件、文档的URL),还可能用attributes定义运行时信息(例如:使XML中的元素的成员字段关联起来)。我们也可以用attributes来创建一个“自描述”的组件。这篇指南中我们将明白怎么创建属性并将其绑定到各种语言元素上,另外我们怎样在运行环境下获取到attributes的一些信息。定义MSDN中做如下定义:“An attribute is a piece of additionaldeclarative information that i 阅读全文
posted @ 2014-03-20 13:44 繁华落尽、 阅读(668) 评论(0) 推荐(0) 编辑