<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Luckdv</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/29067/rss</id><updated>2011-11-15T02:42:52Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/29067/rss"/><entry><id>http://www.cnblogs.com/luckdv/archive/2011/11/15/2249430.html</id><title type="text">Mock 相关资料</title><summary type="text">MOCK MOQ 代码下载 http://code.google.com/p/moq/ QuickStart http://code.google.com/p/moq/wiki/QuickStart 示例: http://www.cnblogs.com/haogj/archive/2011/07/22/2113496.html 基础资料: ...</summary><published>2011-11-15T02:43:00Z</published><updated>2011-11-15T02:43:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/archive/2011/11/15/2249430.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/archive/2011/11/15/2249430.html"/><content type="html">&lt;p&gt;MOCK MOQ 代码下载 &lt;a title="http://code.google.com/p/moq/" href="http://code.google.com/p/moq/"&gt;http://code.google.com/p/moq/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;QuickStart&amp;#160; &lt;a title="http://code.google.com/p/moq/wiki/QuickStart" href="http://code.google.com/p/moq/wiki/QuickStart"&gt;http://code.google.com/p/moq/wiki/QuickStart&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;示例:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://www.cnblogs.com/haogj/archive/2011/07/22/2113496.html" href="http://www.cnblogs.com/haogj/archive/2011/07/22/2113496.html"&gt;http://www.cnblogs.com/haogj/archive/2011/07/22/2113496.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;基础资料:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://www.cnblogs.com/nuaalfm/archive/2009/11/25/1610755.html" href="http://www.cnblogs.com/nuaalfm/archive/2009/11/25/1610755.html"&gt;http://www.cnblogs.com/nuaalfm/archive/2009/11/25/1610755.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://www.cnblogs.com/jams742003/archive/2010/03/02/1676215.html" href="http://www.cnblogs.com/jams742003/archive/2010/03/02/1676215.html"&gt;http://www.cnblogs.com/jams742003/archive/2010/03/02/1676215.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://www.cnblogs.com/wjiang/archive/2010/02/21/1670632.html" href="http://www.cnblogs.com/wjiang/archive/2010/02/21/1670632.html"&gt;http://www.cnblogs.com/wjiang/archive/2010/02/21/1670632.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://www.cnblogs.com/haogj/archive/2011/07/24/2115575.html" href="http://www.cnblogs.com/haogj/archive/2011/07/24/2115575.html"&gt;http://www.cnblogs.com/haogj/archive/2011/07/24/2115575.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;我的示例代码:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/luckdv/201111/20111115104246837.gif"&gt;&lt;img style="display: inline" title="xiazai" alt="xiazai" src="http://images.cnblogs.com/cnblogs_com/luckdv/201111/201111151042485938.gif" width="125" height="70" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2011/11/Mock.rar"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/201111/201111151042484444.gif" width="217" height="43" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2011/11/Task_Mock.rar"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/201111/201111151042513590.gif" width="217" height="43" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/luckdv/aggbug/2249430.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/archive/2011/11/15/2249430.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/archive/2011/09/26/2190695.html</id><title type="text">Windows7 IIS7 无法启动计算机上的服务W3SVC如何修复</title><summary type="text">错误提示 启动iis7管理服务器提示:无法启动计算机上的服务W3SVC 启动Windows Process Activation Service服务,报错:6801 指定资源管理器中的事务支持未启动或已关闭 启动world wide web publishing service服务,报错:1068：依赖服务或组无法启动 修复错误 运行命令提示符 fsuti...</summary><published>2011-09-25T16:00:00Z</published><updated>2011-09-25T16:00:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/archive/2011/09/26/2190695.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/archive/2011/09/26/2190695.html"/><content type="html">&lt;p&gt;&lt;strong&gt;错误提示      &lt;br /&gt;&lt;/strong&gt;启动iis7管理服务器提示:无法启动计算机上的服务W3SVC     &lt;br /&gt;启动Windows Process Activation Service服务,报错:6801 指定资源管理器中的事务支持未启动或已关闭     &lt;br /&gt;启动world wide web publishing service服务,报错:1068：依赖服务或组无法启动&lt;/p&gt;  &lt;p&gt;&lt;br /&gt;&lt;strong&gt;修复错误&lt;/strong&gt;     &lt;br /&gt;运行命令提示符 fsutil resource setautoreset true c:\     &lt;br /&gt;打开运行输入 services.msc     &lt;br /&gt;启动Windows Process Activation Service服务     &lt;br /&gt;再启动world wide web publishing service服务     &lt;br /&gt;再启动iis7就可以了&lt;/p&gt;&lt;img src="http://www.cnblogs.com/luckdv/aggbug/2190695.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/archive/2011/09/26/2190695.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/archive/2011/08/03/2126011.html</id><title type="text">Unity 基础</title><summary type="text">包括以下基本代码  Unity 基本使用 Unity 注册别名 将类型注册为单例 将已有对象注册为单例 注入的三种方式  构造函数注入  属性注入  方法注入    参考：http://www.cnblogs.com/kebixisimba/archive/2008/05/19/1202467.html</summary><published>2011-08-03T03:46:00Z</published><updated>2011-08-03T03:46:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/archive/2011/08/03/2126011.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/archive/2011/08/03/2126011.html"/><content type="html">&lt;p&gt;包括以下基本代码&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Unity&amp;#160; 基本使用&lt;/li&gt;    &lt;li&gt;Unity&amp;#160; 注册别名&lt;/li&gt;    &lt;li&gt;将类型注册为单例&lt;/li&gt;    &lt;li&gt;将已有对象注册为单例&lt;/li&gt;    &lt;li&gt;注入的三种方式&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 构造函数注入&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 属性注入&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 方法注入&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2011/07/Unity.rar" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/201108/201108031146261248.gif" width="217" height="43" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;参考：&lt;a title="http://www.cnblogs.com/kebixisimba/archive/2008/05/19/1202467.html" href="http://www.cnblogs.com/kebixisimba/archive/2008/05/19/1202467.html"&gt;http://www.cnblogs.com/kebixisimba/archive/2008/05/19/1202467.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/luckdv/aggbug/2126011.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/archive/2011/08/03/2126011.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/archive/2011/07/21/2112767.html</id><title type="text">架构设计之依赖倒置、控制反转与依赖注入</title><summary type="text">名词解释依赖：一种模型元素之间的关系的描述。例如类A调用了类B，那么我们说类A依赖于类B。耦合：一种模型元素之间的关系的描述。例如类A调用了类B或类B调用了类A，那么我们说类A与类B有耦合关系。耦合度：模型元素之间的依赖程度的量化描述。控制：一种模型元素之间的关系的描述。例如类A调用了类B，那么我们说类A控制类B。绪论架构设计的对象一般是类库、框架和应用程序。其工作任务除了类库、框架、应用程序各个模块（类）之间的关系设计之外，还包括类库、框架和应用程序三者之间关系的设计。而依赖倒置、控制反转、依赖注入正是常用的一类设计模式。依赖倒置、控制反转、依赖注入三者含义和目标基本一致，即通过抽象接口解耦</summary><published>2011-07-21T06:20:00Z</published><updated>2011-07-21T06:20:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/archive/2011/07/21/2112767.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/archive/2011/07/21/2112767.html"/><content type="html">&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;名词解释&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&#xD;
&lt;p&gt;&lt;strong&gt;依赖：&lt;/strong&gt;一种模型元素之间的关系的描述。例如类A调用了类B，那么我们说类A依赖于类B。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;耦合：&lt;/strong&gt;一种模型元素之间的关系的描述。例如类A调用了类B或类B调用了类A，那么我们说类A与类B有耦合关系。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;耦合度：&lt;/strong&gt;模型元素之间的依赖程度的量化描述。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;控制：&lt;/strong&gt;一种模型元素之间的关系的描述。例如类A调用了类B，那么我们说类A控制类B。&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;绪论&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&#xD;
&lt;p&gt;架构设计的对象一般是类库、框架和应用程序。其工作任务除了类库、框架、应用程序各个模块（类）之间的关系设计之外，还包括类库、框架和应用程序三者之间关系的设计。而依赖倒置、控制反转、依赖注入正是常用的一类设计模式。&lt;/p&gt;&#xD;
&lt;p&gt;依赖倒置、控制反转、依赖注入三者含义和目标基本一致，即通过抽象接口解耦和消除依赖关系。&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;依赖倒置&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&#xD;
&lt;p&gt;从字面理解依赖倒置往往不知所云，通过了解其历史渊源可以很好的消除这种误解。在面向结构编程时代，架构设计师往往采用自上而下的设计模式，先设计上层模块，再设计下层模块，如此层层分解，导致上层模块严重依赖于下层模块，下层模块的一点变化都会导致上层地震。到了面向对象编程时代，架构设计师使用对象进行设计，通过抽象接口解耦各层之间的依赖关系，为了与面向结构的设计模式区分开，同时体现面向对象的优势，也为了哗众取宠，就给这种新的设计模式起了个依赖倒置的名称。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;依赖倒置的核心思想是依赖于抽象。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;依赖倒置的原则是上层模块不依赖于下层模块，而是依赖于一套抽象接口，上层模块调用接口，下层模块实现接口。以类库和应用程序为例，我们把应用程序需要调用的功能抽象为一组接口，然后由类库实现这组接口，那么应用程序就可以使用任意实现了该接口的类库，从而和类库解耦。&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;控制反转&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&#xD;
&lt;p&gt;控制反转的来历与依赖倒置相似，以前设计应用程序，虽然会引用类库，但一切都在应用程序的控制之中。后来根据应用程序的不同场景，人们设计了相应的框架，有了框架之后，再设计应用程序时，就变成了为框架增加自定义行为的设计，控制权转到了框架手里，因此说控制权反转了。&lt;/p&gt;&#xD;
&lt;p&gt;控制反转是依赖倒置的一种具体实现，强调的是控制流程的依赖倒置，是框架设计的必用模式。框架基于依赖倒置模式设计：对于框架中不确定的部分，框架抽象出一组接口，并依赖于这组接口进行实现，应用程序实现这组接口。&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;依赖注入&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&#xD;
&lt;p&gt;依赖注入也是依赖倒置的一种具体实现，是类库设计的一种常用模式。类库中的类基于依赖模式设计：某类依赖于接口，而不是具体的实现，由调用者在调用时传入这些接口的具体实现类。&lt;/p&gt;&#xD;
&lt;p&gt;.Net中广泛使用此模式，比如StreamReader类，当使用StreamReader时，需要实例化一个Stream或其派生类，传给StreamReader的构造函数，然后方能使用该类的方法。&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;弊病&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&#xD;
&lt;p&gt;依赖倒置的基础是假设抽象是稳定的。对于我们已经了解的事物，当然可以实现很好的抽象，但对于尚未认识清楚的事物，比如用户需求，就很难保证这个抽象的稳定性。因此一旦这个抽象稳定的假设不成立，那么依赖倒置不但不能发挥优势，反倒可能成为包袱。&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&#xD;
原文章来自:http://blog.sina.com.cn/s/blog_554634270100oo2k.html&#xD;
&lt;img src="http://www.cnblogs.com/luckdv/aggbug/2112767.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/archive/2011/07/21/2112767.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/articles/1979740.html</id><title type="text">Silverlight+wcf+自定义用户名密码验证</title><summary type="text">本文摘自 http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html在昨天的博文Silverlight3+wcf+在不使用证书的情况下自定义用户名密码验证 中提到了，我想实现的安全效果，就是客户端访问的时候不需要https，也不需要安装证书（商业证书客户端会自动信任），但是暴露的wcf接口不是每个人可以调用的，因为sl+wcf只支持basicHttpBinding一种绑定，在这种绑定下面其实是可以不适用传输安全，然后消息安全选择username，就是我想要的效果，但是到目前为止我都没有试验成功，有哪位成功了，可以给我一些提示，</summary><published>2011-03-10T05:44:00Z</published><updated>2011-03-10T05:44:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/articles/1979740.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/articles/1979740.html"/><content type="html">&lt;p&gt;本文摘自 &lt;a title="http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html" href="http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html"&gt;http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在昨天的博文&lt;a href="http://www.cnblogs.com/virusswb/archive/2010/01/25/1655748.html"&gt;&lt;/a&gt;Silverlight3+wcf+在不使用证书的情况下自定义用户名密码验证 &lt;/a&gt;中提到了，我想实现的安全效果，就是客户端访问的时候不需要https，也不需要安装证书（商业证书客户端会自动信任），但是暴露的wcf接口不是每个人可以调用的，因为sl+wcf只支持basicHttpBinding一种绑定，在这种绑定下面其实是可以不适用传输安全，然后消息安全选择username，就是我想要的效果，但是到目前为止我都没有试验成功，有哪位成功了，可以给我一些提示，在此先谢谢了！ &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;昨天我也有想，要是实验不成功，我就自己在参数中加上用户名密码，在wcf端进行自己的验证（根据数据库信息)，当然了，传输的用户名和密码要加密，然后在wcf端解密，算法使用.NET类库（这方面可以参看：&lt;a href="http://www.microsoft.com/china/technet/security/guidance/secmod39.mspx"&gt;加密技术、密钥和证书&lt;/a&gt;&amp;nbsp; ）中的就可以了，如果自己有兴趣或者又需要加入自己的算法也可以。 &lt;/p&gt;&#xD;
&lt;p&gt;今天我又在google上面搜索，MSDN论坛中找帖子，中文的，英文的，都看看，有没有我想要的效果，目前没有结果。但是找到了下面的一篇文章，可惜打不开，只能看看快照，给了我更多的提醒，同时感觉自己的联想性真是还不行啊，想的就那么一点点，联系性也不行，相关知识无法联系使用。他里面也提到了我的上面一段的想法。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;原文地址： &lt;a href="http://kevindockx.blogspot.com/2009/02/username-authentication-with.html"&gt;Username Authentication with Silverlight，WCF &amp;amp; basicHttpBinding&lt;/a&gt; ，打不开的用户可以在google的搜索结果中点击快照。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;原文代码下载：&lt;a href="http://files.cnblogs.com/virusswb/SL_Secure_WCF.rar"&gt;/Files/virusswb/SL_Secure_WCF.rar&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;总结起来，他提到的验证有四种：&lt;/p&gt;&#xD;
&lt;p&gt;1、&amp;nbsp; 无验证&lt;/p&gt;&#xD;
&lt;p&gt;2、通过参数验证，就是在wcf方法的参数中添加两个参数，username和password&lt;/p&gt;&#xD;
&lt;p&gt;3、通过信息头部验证，将验证的用户信息存储在信息的header中，然后再wcf端取出来进行验证&lt;/p&gt;&#xD;
&lt;p&gt;4、还是通过信息头部验证，但是，是在方法上添加attibute，利用特性进行验证，否则每次的方法中都要进行验证，加载特性中，只需要针对特性进行编码，在特性中进行验证。&lt;/p&gt;&#xD;
&lt;p&gt;--------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;上面提供的源码运行起来有问题。于是，我将他们的源码重新再写一次。并修改了几处BUG 运行没有问题，有需要的人拿去吧。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/luckdv/201103/201103101343461095.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2011-03-10_00190" border="0" alt="2011-03-10_00190" src="http://images.cnblogs.com/cnblogs_com/luckdv/201103/201103101343474277.png" width="437" height="240" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2011/03/sl_wcf_authentication.rar" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/201103/201103101343481703.gif" width="217" height="43" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/luckdv/aggbug/1979740.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/articles/1979740.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/articles/1931168.html</id><title type="text">SL + WCF 报:远程服务器返回了错误: NotFound</title><summary type="text">用户代码未处理 System.ServiceModel.CommunicationException 远程服务器返回了错误: NotFound。在ServiceBehaviors中添加maxItemsInObjectGraph属性&amp;lt;dataContractSerializer maxItemsInObjectGraph="2147483647"/&amp;gt;其次在客户端在调用WCF服务的时候要添加 using System.Net.Browser;bool registerResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.Cl</summary><published>2011-01-09T05:10:00Z</published><updated>2011-01-09T05:10:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/articles/1931168.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/articles/1931168.html"/><content type="html">&lt;p&gt;用户代码未处理 System.ServiceModel.CommunicationException &lt;br /&gt;远程服务器返回了错误: NotFound。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在ServiceBehaviors中添加maxItemsInObjectGraph属性&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;dataContractSerializer maxItemsInObjectGraph="2147483647"/&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;其次在客户端在调用WCF服务的时候要添加 &lt;/p&gt;&#xD;
&lt;p&gt;using System.Net.Browser;&lt;/p&gt;&#xD;
&lt;p&gt;bool registerResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);&lt;/p&gt;&#xD;
&lt;p&gt;bool httpsResult = WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/luckdv/aggbug/1931168.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/articles/1931168.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/articles/silverlight.html</id><title type="text">Silverlight 简单拖曳</title><summary type="text">Webcast 上一个小Demo 隐藏行号 复制代码 ？ 这是一段程序代码。</summary><published>2011-01-05T04:24:00Z</published><updated>2011-01-05T04:24:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/articles/silverlight.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/articles/silverlight.html"/><content type="html">&lt;p&gt;Webcast 上一个小Demo&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div &gt; &lt;div  title="标题"&gt;&lt;span  title="工具栏区域"&gt;&lt;span  onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" tabindex="0" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" tabindex="1" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="关于本程序" tabindex="2" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;这是一段程序代码。 &lt;/div&gt; &lt;div  title="源代码区域"&gt; &lt;ol &gt; &lt;li value="1"&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WrapPanel &lt;/span&gt;imageContainer = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SolidColorBrush &lt;/span&gt;enterColor = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SolidColorBrush&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Colors&lt;/span&gt;.DarkGray);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SolidColorBrush &lt;/span&gt;LeaveColor = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SolidColorBrush&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Colors&lt;/span&gt;.Transparent);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;MainPage()&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;InitializeComponent();&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;imageContainer = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WrapPanel&lt;/span&gt;() { Background = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SolidColorBrush&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Colors&lt;/span&gt;.LightGray) };&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;scrvierwer.Content = imageContainer;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;imageContainer.AllowDrop = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;imageContainer.Drop += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DragEventHandler&lt;/span&gt;(imageContainer_Drop);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;void &lt;/span&gt;imageContainer_Drop(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;DragEventArgs &lt;/span&gt;e)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: #2b91af"&gt;FileInfo&lt;/span&gt;[] droppedfiles = e.Data.GetData(&lt;span style="color: #2b91af"&gt;DataFormats&lt;/span&gt;.FileDrop) &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;FileInfo&lt;/span&gt;[];&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;FileInfo &lt;/span&gt;item &lt;span style="color: blue"&gt;in &lt;/span&gt;droppedfiles)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(IsSupportedImageFile(item.Extension.ToLower()))&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: #2b91af"&gt;Border &lt;/span&gt;imagePlaceHolder = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Border&lt;/span&gt;()&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;Child = CreateImage(item),&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;Margin = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Thickness&lt;/span&gt;(10.0),&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;Cursor = &lt;span style="color: #2b91af"&gt;Cursors&lt;/span&gt;.Hand&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;};&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #2b91af"&gt;ToolTipService&lt;/span&gt;.SetToolTip(imagePlaceHolder, item.Name);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;imagePlaceHolder.MouseEnter += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseEventHandler&lt;/span&gt;(imagePlaceHolder_MouseEnter);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;imagePlaceHolder.MouseLeave += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseEventHandler&lt;/span&gt;(imagePlaceHolder_MouseLeave);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;imageContainer.Children.Add(imagePlaceHolder);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;void &lt;/span&gt;imagePlaceHolder_MouseLeave(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;MouseEventArgs &lt;/span&gt;e)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;(sender &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Border&lt;/span&gt;).Background = LeaveColor;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;void &lt;/span&gt;imagePlaceHolder_MouseEnter(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;MouseEventArgs &lt;/span&gt;e)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;(sender &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Border&lt;/span&gt;).Background = enterColor;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;private bool &lt;/span&gt;IsSupportedImageFile(&lt;span style="color: blue"&gt;string &lt;/span&gt;extension)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(extension == &lt;span style="color: #a31515"&gt;".jpg" &lt;/span&gt;|| extension == &lt;span style="color: #a31515"&gt;".png"&lt;/span&gt;)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;return true&lt;/span&gt;;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;return false&lt;/span&gt;;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Image &lt;/span&gt;CreateImage(&lt;span style="color: #2b91af"&gt;FileInfo &lt;/span&gt;droppedfile)&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;FileStream &lt;/span&gt;filestreame = droppedfile.OpenRead())&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #2b91af"&gt;BitmapImage &lt;/span&gt;bitmapimage = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BitmapImage&lt;/span&gt;();&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;bitmapimage.SetSource(filestreame);&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;return new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Image&lt;/span&gt;() { Source = bitmapimage, Width = 100, Margin = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Thickness&lt;/span&gt;(5.0) };&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;style type="text/css"&gt;&#xD;
.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}&#xD;
.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}&#xD;
.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}&#xD;
.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}&#xD;
.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}&#xD;
.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}&#xD;
.number_show{ padding-left:52px !important;  list-style:decimal outside !important}&#xD;
.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}&#xD;
.number_hide{ padding-left:0px !important;  list-style-type:none !important}&#xD;
.number_hide li{ list-style-type:none !important;  border-left:0px}&#xD;
ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}&#xD;
ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}&#xD;
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}&#xD;
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&#xD;
&lt;/style&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2011/01/sl_01_05_1218.rar"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/201101/201101051223496325.gif" width="217" height="43"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;img src="http://www.cnblogs.com/luckdv/aggbug/1926205.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/articles/silverlight.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/articles/1865798.html</id><title type="text">EF4ProviderWrappers</title><summary type="text">在Kooboo中使用了Entity Framework作为持久化框架，但由于EF1.0并没有提供完整缓存解决方案，一直以来都在为数据缓存而烦脑，在没有找到合适解决方案的情况下，采取了临时的解决办法：直接缓存实体。但是由于Entity实体都是带状态的，并且都与ObjectContext有间接的反向引用，缓存带状态的实体，会造成对象上下文混乱和连接资源的无法被正确释放。因此缓存的Entity实体，首先...</summary><published>2010-10-31T14:35:00Z</published><updated>2010-10-31T14:35:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/articles/1865798.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/articles/1865798.html"/><content type="html">&lt;p&gt;在Kooboo中使用了Entity Framework作为持久化框架，但由于EF1.0并没有提供完整缓存解决方案，一直以来都在为数据缓存而烦脑，在没有找到合适解决方案的情况下，采取了临时的解决办法：直接缓存实体。但是由于Entity实体都是带状态的，并且都与ObjectContext有间接的反向引用，缓存带状态的实体，会造成对象上下文混乱和连接资源的无法被正确释放。因此缓存的Entity实体，首先必须被分离或者重新定义POCO实体来代替Entity实体作为缓存对象。这样一来，所有的缓存实体的关联关系都会失效，造成使用上的麻烦和整个软件框架存在严重的不足。&#xD;
&lt;p&gt;&lt;p&gt;再说说EF的SQL日志问题。在之前的LINQ TO SQL的项目中，有一个可视化的调试器，可以查看查询表达式生成对应的SQL语句，这种可以大大方便开发人员的调试工作。可以在EF1.0中，却一直也找不到类似可用的工具。因此，我的做法是通过SQL Profile来查看EF生成和执行的SQL语句。虽然可行，但还是很不方便。&#xD;
&lt;p&gt;&lt;p&gt;现在，EF团队终于推出一套比较完整的缓存和SQL执行日志的解决方案，&lt;a href="http://code.msdn.microsoft.com/EFProviderWrappers"&gt;EFProviderWrappers&lt;/a&gt;。他们的做法是在原来的EF Provider之上，再加一层包装，通过这层包装拦截，进行数据缓存和日志监控。这里缓存的数据是数据库查询后返回的原生数据，并不是Entity实体对象，这样就可以避免Entity实体状态对缓存造成的的极端负面影响。并且这样的缓存对上层的数据查询本身是透明，在同一个封闭区间内，缓存数据所依赖的实体类型在被更新后（对应的表有发生CURD操作），缓存并会被自动清空。对于日志的监控，经过这层包装后就可以非常容易得到处理。&#xD;
&lt;p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/EF4ProviderWrappers_13D48/EfProviderWrapper_thumb_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="EfProviderWrapper_thumb" border="0" alt="EfProviderWrapper_thumb" src="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/EF4ProviderWrappers_13D48/EfProviderWrapper_thumb_thumb.png" width="518" height="401" /&gt;&lt;/a&gt;&#xD;
&lt;p&gt;&lt;p&gt;上面的图虽然是说明对SqlClient有效，但由于这层包装并不涉及具体的SQL操作，因此对不同的数据的Provider应该都是有效。下面通过一个自带的实例简单介绍一下如何使用。&#xD;
&lt;p&gt;&lt;p&gt;在下载的&lt;a href="http://code.msdn.microsoft.com/EFProviderWrappers"&gt;EFProviderWrappers&lt;/a&gt;解决方案中，EFProviderWrapperToolkit，EFCachingProvider，EFTracingProvider这三个工程是真正干事的，其它的工程都是示例工程。在EFProviderWrapperDemo工程，我们可以找到我们所要的例子。&#xD;
&lt;p&gt;&lt;p&gt;第一步：在配置文件中添加如下配置：&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div  title="标题"&gt;&lt;span  title="工具栏区域"&gt;&lt;span  onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" tabindex="0" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" tabindex="1" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="关于本程序" tabindex="2" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div  title="源代码区域"&gt;&#xD;
&lt;ol &gt;&#xD;
    &lt;li value="1"&gt;&#xD;
    &lt;pre &gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;system.data&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre&gt;&lt;span style="color: blue"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DbProviderFactories&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre &gt;&lt;span style="color: blue"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EF Caching Data Provider&lt;/span&gt;" &lt;span style="color: red"&gt;invariant&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EFCachingProvider&lt;/span&gt;" &lt;span style="color: red"&gt;description&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Caching Provider Wrapper&lt;/span&gt;" &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EFCachingProvider.EFCachingProviderFactory, EFCachingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b&lt;/span&gt;" &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre&gt;&lt;span style="color: blue"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EF Tracing Data Provider&lt;/span&gt;" &lt;span style="color: red"&gt;invariant&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EFTracingProvider&lt;/span&gt;" &lt;span style="color: red"&gt;description&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Tracing Provider Wrapper&lt;/span&gt;" &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EFTracingProvider.EFTracingProviderFactory, EFTracingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b&lt;/span&gt;" &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre &gt;&lt;span style="color: blue"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EF Generic Provider Wrapper&lt;/span&gt;" &lt;span style="color: red"&gt;invariant&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EFProviderWrapper&lt;/span&gt;" &lt;span style="color: red"&gt;description&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Generic Provider Wrapper&lt;/span&gt;" &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;EFProviderWrapperToolkit.EFProviderWrapperFactory, EFProviderWrapperToolkit, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b&lt;/span&gt;" &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre&gt;&lt;span style="color: blue"&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DbProviderFactories&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre &gt;&lt;span style="color: blue"&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;system.data&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
    &lt;pre&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&#xD;
    &lt;/pre&gt;&#xD;
    &lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;style type="text/css"&gt;&#xD;
.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}&#xD;
.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}&#xD;
.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}&#xD;
.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}&#xD;
.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}&#xD;
.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}&#xD;
.number_show{ padding-left:52px !important;  list-style:decimal outside !important}&#xD;
.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}&#xD;
.number_hide{ padding-left:0px !important;  list-style-type:none !important}&#xD;
.number_hide li{ list-style-type:none !important;  border-left:0px}&#xD;
ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}&#xD;
ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}&#xD;
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}&#xD;
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&#xD;
&lt;/style&gt;&#xD;
&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第二步：从生成的ObjectContext中继承一个扩展的ObjectContext，定义所需的扩展属性，其中重点是重新定义构造器，生成包装后的EntityConnection对象。&lt;strong&gt;&lt;font color="#008000"&gt;注意 name 是指web.config 中数据库连接的名称&lt;/font&gt;&lt;/strong&gt; &#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div  title="标题"&gt;&lt;span  title="工具栏区域"&gt;&lt;span  onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" tabindex="0" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" tabindex="1" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="关于本程序" tabindex="2" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div  title="源代码区域"&gt;&#xD;
&lt;ol &gt;&lt;li value="1"&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ExtendedNorthwindEntities &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;NorthwindEntities&lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;&lt;span style="color: #2b91af"&gt;&lt;/span&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TextWriter &lt;/span&gt;logOutput;&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;ExtendedNorthwindEntities()&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;: &lt;span style="color: blue"&gt;this&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"name=NorthwindEntities"&lt;/span&gt;)&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;ExtendedNorthwindEntities(&lt;span style="color: blue"&gt;string &lt;/span&gt;connectionString)&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;: &lt;span style="color: blue"&gt;base&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;EntityConnectionWrapperUtils&lt;/span&gt;.CreateEntityConnectionWithWrappers(&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;connectionString,&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;span style="color: #a31515"&gt;"EFTracingProvider"&lt;/span&gt;,&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;&lt;span style="color: #a31515"&gt;"EFCachingProvider"&lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;span style="color: #a31515"&gt;        &lt;/span&gt;))&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;style type="text/css"&gt;&#xD;
.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}&#xD;
.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}&#xD;
.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}&#xD;
.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}&#xD;
.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}&#xD;
.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}&#xD;
.number_show{ padding-left:52px !important;  list-style:decimal outside !important}&#xD;
.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}&#xD;
.number_hide{ padding-left:0px !important;  list-style-type:none !important}&#xD;
.number_hide li{ list-style-type:none !important;  border-left:0px}&#xD;
ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}&#xD;
ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}&#xD;
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}&#xD;
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&#xD;
&lt;/style&gt;&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第三步：指定缓存管理器和缓存策略，缓存管理器是可扩展的。默认提供两种缓存管理器的实现，InMemoryCache和AspNetCache，另外还提供了一种分布式缓存NVelocity适配器的实现：VelocityCache。对于日志监控，可以通过EFTracingProviderConfiguration设置是否输出到控制台或输出到文件，当然通过扩展的ObjectContext还可以将日志输出到指定的TextWriter： &#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div  title="标题"&gt;&lt;span  title="工具栏区域"&gt;&lt;span  onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" tabindex="0" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" tabindex="1" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="关于本程序" tabindex="2" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div  title="源代码区域"&gt;&#xD;
&lt;ol &gt;&lt;li value="1"&gt;&lt;pre &gt;&lt;span style="color: blue"&gt;void &lt;/span&gt;Application_Start(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;EventArgs &lt;/span&gt;e)&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;span style="color: #2b91af"&gt;EFTracingProviderConfiguration&lt;/span&gt;.LogToFile = Server.MapPath(&lt;span style="color: #a31515"&gt;"/Logs/" &lt;/span&gt;+ &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"{0:yyyy-MM-dd}"&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Now) + &lt;span style="color: #a31515"&gt;".txt"&lt;/span&gt;); &#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;&lt;span style="color: #2b91af"&gt;EFCachingProviderConfiguration&lt;/span&gt;.DefaultCache = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;AspNetCache&lt;/span&gt;();&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;span style="color: #2b91af"&gt;EFCachingProviderConfiguration&lt;/span&gt;.DefaultCachingPolicy = &lt;span style="color: #2b91af"&gt;CachingPolicy&lt;/span&gt;.CacheAll;&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;style type="text/css"&gt;&#xD;
.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}&#xD;
.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}&#xD;
.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}&#xD;
.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}&#xD;
.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}&#xD;
.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}&#xD;
.number_show{ padding-left:52px !important;  list-style:decimal outside !important}&#xD;
.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}&#xD;
.number_hide{ padding-left:0px !important;  list-style-type:none !important}&#xD;
.number_hide li{ list-style-type:none !important;  border-left:0px}&#xD;
ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}&#xD;
ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}&#xD;
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}&#xD;
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&#xD;
&lt;/style&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;接下来直接就可以使用，注意不同的ObjectContext实例都要指向同一个ICache实例，并且即使你的创建的ObjectCotnext不需要缓存操作，也应该指定ICache实例，并且设置缓存策略为NoCaching，这样在当你的ObjectContext调用了SaveChanges后将会自动清空被更新的实体类型的缓存数据。&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2010/10/luckdv_EF4ProviderWrappers.rar"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/EF4ProviderWrappers_13D48/download2_6_3_thumb.gif" width="217" height="43" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/luckdv/aggbug/1865798.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/articles/1865798.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/articles/1857691.html</id><title type="text">MVC 文件及URL 的整理</title><summary type="text">我们平时在做Asp.Net MVC（以下就简称mvc）项目的时候，页面文件结构都用了&amp;#8220;/Views/Controllers/page.aspx&amp;#8221;，而把一些PartialView呢放在/Views/Shared 目录下面，但如果PartialView越来越多了呢。。。。如果其中还混杂着几个MasterPage，几个Error.aspx。。。。这个目录看起来就。。。。。 O m...</summary><published>2010-10-21T09:18:00Z</published><updated>2010-10-21T09:18:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/articles/1857691.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/articles/1857691.html"/><content type="html">&lt;p&gt;我们平时在做Asp.Net MVC（以下就简称mvc）项目的时候，页面文件结构都用了&amp;#8220;/Views/Controllers/page.aspx&amp;#8221;，而把一些PartialView呢放在/Views/Shared 目录下面，但如果PartialView越来越多了呢。。。。如果其中还混杂着几个MasterPage，几个Error.aspx。。。。这个目录看起来就。。。。。 &lt;p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/MVCURL_F319/image_thumb_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image_thumb" border="0" alt="image_thumb" src="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/MVCURL_F319/image_thumb_thumb.png" width="239" height="181"&gt;&lt;/a&gt;  &lt;p&gt;&lt;p&gt;O my lady gaga！忒难看了，如果多了以后那更难看了。。。。。 &lt;p&gt;为了看起来好看点，我准备分目录存放，我的目标是： &lt;p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/MVCURL_F319/image_thumb_2_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image_thumb_2" border="0" alt="image_thumb_2" src="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/MVCURL_F319/image_thumb_2_thumb.png" width="244" height="238"&gt;&lt;/a&gt;  &lt;p&gt;&lt;p&gt;打开Home\Index.asp文件，放一个Login的PartialView吧。先运行一下看看吧。。。一定肯定以及确定不能运行，因为我们的mvc根本没有找到所需的文件，错误信息&amp;#8220;&lt;i&gt;The partial view 'xxx' was not found&lt;/i&gt;&amp;#8221;。 &lt;p&gt;&lt;p&gt;我们知道mvc在查找文件的时候，会到2个目录下查找，一个是Controller目录，一个就是Shared目录，寻找Action.aspx或者Action.ascx，我们看下源代码（我下载的是&lt;a href="http://www.asp.net/mvc"&gt;asp.net mvc rc2&lt;/a&gt;)，通过查看源代码，得知查找View或者PartialView都是通过IViewEngine.FindView和IViewEngine.FindPartialView来查找的。通过静态类：ViewEngines中的Engines，递归寻找，如果找到就显示，如果没有找到就报异常了。 &lt;p&gt;&lt;/p&gt; &lt;div &gt; &lt;div  title="标题"&gt;&lt;span  title="工具栏区域"&gt;&lt;span  onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" tabindex="0" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" tabindex="1" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span  onmouseover="ChangeIcon(this,true)" title="关于本程序" tabindex="2" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;这是一段程序代码。 &lt;/div&gt; &lt;div  title="源代码区域"&gt; &lt;ol &gt; &lt;li value="1"&gt;&lt;pre &gt;&lt;span style="color: #2b91af"&gt;ViewEngines&lt;/span&gt;.Engines.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WebFormViewEngine&lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #2b91af"&gt;&lt;/span&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;ViewLocationFormats = &lt;span style="color: blue"&gt;new string&lt;/span&gt;[]&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: #a31515"&gt;"~/Views/Shared/Error/{0}.aspx"&lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #a31515"&gt; &lt;/span&gt;},&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;PartialViewLocationFormats = &lt;span style="color: blue"&gt;new string&lt;/span&gt;[]&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: #a31515"&gt;"~/Views/Shared/Partial/{0}.ascx"&lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #a31515"&gt;  &lt;/span&gt;},&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;MasterLocationFormats = &lt;span style="color: blue"&gt;new string&lt;/span&gt;[]&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: #a31515"&gt;"~/Views/Shared/Master/{0}.Master"&lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #a31515"&gt;&lt;/span&gt;},&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;AreaMasterLocationFormats = &lt;span style="color: blue"&gt;new string&lt;/span&gt;[]&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;{&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;span style="color: #a31515"&gt;"~/Areas/{1}/Share/Master/{0}.Master"              &lt;/span&gt;&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;&lt;span style="color: #a31515"&gt; &lt;/span&gt;}&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre&gt;});&#xD;
&lt;/pre&gt;&lt;/li&gt;&#xD;
&lt;li&gt;&lt;pre &gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;style type="text/css"&gt;&#xD;
.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}&#xD;
.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}&#xD;
.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}&#xD;
.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}&#xD;
.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}&#xD;
.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}&#xD;
.number_show{ padding-left:52px !important;  list-style:decimal outside !important}&#xD;
.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}&#xD;
.number_hide{ padding-left:0px !important;  list-style-type:none !important}&#xD;
.number_hide li{ list-style-type:none !important;  border-left:0px}&#xD;
ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}&#xD;
ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}&#xD;
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}&#xD;
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&#xD;
&lt;/style&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;a href="http://dl.dropbox.com/u/1881411/Code/2010/10/mvc_2010_10_21_1715.rar"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="download2_6_3" border="0" alt="download2_6_3" src="http://images.cnblogs.com/cnblogs_com/luckdv/WindowsLiveWriter/MVCURL_F319/download2_6_3_3.gif" width="217" height="43"&gt;&lt;/a&gt;  &lt;img src="http://www.cnblogs.com/luckdv/aggbug/1857691.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/articles/1857691.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/luckdv/articles/1855924.html</id><title type="text">关于Action返回结果类型的事儿（下）</title><summary type="text">代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Web;5usingSystem.Web.Mv...</summary><published>2010-10-19T14:15:00Z</published><updated>2010-10-19T14:15:00Z</updated><author><name>luckdv</name><uri>http://www.cnblogs.com/luckdv/</uri></author><link rel="alternate" href="http://www.cnblogs.com/luckdv/articles/1855924.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/luckdv/articles/1855924.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('a516da60-f2a3-42bd-9e6a-9a284caf5f7f')"&gt;&lt;img style="display: none" id="code_img_opened_a516da60-f2a3-42bd-9e6a-9a284caf5f7f"  onclick="cnblogs_code_hide('a516da60-f2a3-42bd-9e6a-9a284caf5f7f',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&#xD;
&lt;div id="cnblogs_code_open_a516da60-f2a3-42bd-9e6a-9a284caf5f7f" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Web;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Web.Mvc;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Web.Mvc.Ajax;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.IO;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MVC.Controllers&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller&amp;nbsp;类必须以字符串&amp;nbsp;"Controller"&amp;nbsp;做类名称的结尾，字符串&amp;nbsp;Controller&amp;nbsp;之前的字符串为&amp;nbsp;Controller&amp;nbsp;的名称，类中的方法名为&amp;nbsp;Action&amp;nbsp;的名称&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ControllerDemoController&amp;nbsp;:&amp;nbsp;Controller&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;[NonAction]&amp;nbsp;-&amp;nbsp;当前方法仅为普通方法，不解析为&amp;nbsp;Action&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;[AcceptVerbs(HttpVerbs.Post)]&amp;nbsp;-&amp;nbsp;声明&amp;nbsp;Action&amp;nbsp;所对应的&amp;nbsp;http&amp;nbsp;方法&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Action&amp;nbsp;可以没有返回值&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Void()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;.Format(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;lt;span&amp;nbsp;style='color:&amp;nbsp;red'&amp;gt;{0}&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;void&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;如果&amp;nbsp;Action&amp;nbsp;要有返回值的话，其类型必须是&amp;nbsp;ActionResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;EmptyResult&amp;nbsp;-&amp;nbsp;空结果&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;EmptyResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;.Format(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;lt;span&amp;nbsp;style='color:&amp;nbsp;red'&amp;gt;{0}&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;EmptyResult&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;EmptyResult();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.Redirect()&amp;nbsp;-&amp;nbsp;转向一个指定的&amp;nbsp;url&amp;nbsp;地址&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;RedirectResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;RedirectResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.Redirect(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;~/ControllerDemo/ContentResult&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.RedirectToAction()&amp;nbsp;-&amp;nbsp;转向到指定的&amp;nbsp;Action&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;RedirectToRouteResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;51&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;RedirectToRouteResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.RedirectToAction(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ContentResult&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.Json()&amp;nbsp;-&amp;nbsp;将指定的对象以&amp;nbsp;JSON&amp;nbsp;格式输出出来&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;58&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;JsonResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;60&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;JsonResult(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;name)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Threading.Thread.Sleep(&lt;/span&gt;&lt;span style="color: #800080"&gt;1000&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;63&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;64&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;jsonObj&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;{&amp;nbsp;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;name,&amp;nbsp;Age&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Random().Next(&lt;/span&gt;&lt;span style="color: #800080"&gt;20&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;31&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;};&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.Json(jsonObj);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;69&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.JavaScript()&amp;nbsp;-&amp;nbsp;输出一段指定的&amp;nbsp;JavaScript&amp;nbsp;脚本&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;JavaScriptResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;72&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;JavaScriptResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;74&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.JavaScript(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;alert('JavaScriptResult')&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;75&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;76&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.Content()&amp;nbsp;-&amp;nbsp;输出一段指定的内容&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;79&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;ContentResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;80&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;81&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;ContentResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;83&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;contentString&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;.Format(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;lt;span&amp;nbsp;style='color:&amp;nbsp;red'&amp;gt;{0}&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ContentResult&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.Content(contentString);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;85&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.File()&amp;nbsp;-&amp;nbsp;输出一个文件（字节数组）&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;FileContentResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;FileContentResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(Request.PhysicalApplicationPath&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Content/loading.gif&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Open);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;length&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;)fs.Length;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;buffer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;&lt;span style="color: #000000"&gt;[length];&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Read(buffer,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;length);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.File(buffer,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;image/gif&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;100&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;101&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;102&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;103&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.File()&amp;nbsp;-&amp;nbsp;输出一个文件（文件地址）&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;104&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;FileContentResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;105&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;106&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;FilePathResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;107&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;108&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;path&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Request.PhysicalApplicationPath&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Content/loading.gif&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;109&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.File(path,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;image/gif&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;110&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;111&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;112&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;113&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.File()&amp;nbsp;-&amp;nbsp;输出一个文件（文件流）&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;114&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;FileContentResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;115&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;116&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;FileStreamResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;117&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;118&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(Request.PhysicalApplicationPath&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Content/loading.gif&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Open);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;119&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;120&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.File(fs,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;@"&lt;/span&gt;&lt;span style="color: #800000"&gt;image/gif&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;121&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;122&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;123&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;124&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;HttpUnauthorizedResult&amp;nbsp;-&amp;nbsp;响应给客户端错误代码&amp;nbsp;401（未经授权浏览状态），如果程序启用了&amp;nbsp;Forms&amp;nbsp;验证，并且客户端没有任何身份票据，则会跳转到指定的登录页&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;125&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;126&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;HttpUnauthorizedResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;127&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;128&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;HttpUnauthorizedResult();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;129&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;130&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;131&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;132&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.PartialView()&amp;nbsp;-&amp;nbsp;寻找&amp;nbsp;View&amp;nbsp;，即&amp;nbsp;.ascx&amp;nbsp;文件&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;133&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;PartialViewResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;134&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;135&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;PartialViewResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;136&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;137&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.PartialView();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;138&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;139&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;140&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;141&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Controller.View()&amp;nbsp;-&amp;nbsp;寻找&amp;nbsp;View&amp;nbsp;，即&amp;nbsp;.aspx&amp;nbsp;文件&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;142&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;返回类型为&amp;nbsp;ViewResult&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;143&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;144&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;ViewResult()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;145&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;146&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;如果没有指定&amp;nbsp;View&amp;nbsp;名称，则寻找与&amp;nbsp;Action&amp;nbsp;名称相同的&amp;nbsp;View&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;147&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;.View();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;148&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;149&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;150&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;151&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;用于演示处理&amp;nbsp;JSON&amp;nbsp;的&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;152&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;153&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;JsonDemo()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;154&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;155&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;View();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;156&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;157&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;158&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;159&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;用于演示上传文件的&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;160&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;161&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;UploadDemo()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;162&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;163&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;View();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;164&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;165&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;166&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;167&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;用于演示&amp;nbsp;Get&amp;nbsp;方式调用&amp;nbsp;Action&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;168&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;id&amp;nbsp;是根据路由过来的；param1和param2是根据参数过来的&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;169&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;170&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[AcceptVerbs(HttpVerbs.Get)]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;171&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;GetDemo(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;id,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;param1,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;param2)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;172&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;173&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewData[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ID&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;id;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;174&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewData[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Param1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;param1;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;175&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewData[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Param2&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;param2;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;176&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;177&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;View();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;178&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;179&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;180&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;181&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;用于演示&amp;nbsp;Post&amp;nbsp;方式调用&amp;nbsp;Action&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;182&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;183&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;184&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;可以为参数添加声明，如：[Bind(Include&amp;nbsp;=&amp;nbsp;"xxx")]&amp;nbsp;-&amp;nbsp;只绑定指定的属性（参数），多个用逗号隔开&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;185&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;[Bind(Exclude&amp;nbsp;=&amp;nbsp;"xxx")]&amp;nbsp;-&amp;nbsp;不绑定指定的属性（参数），多个用逗号隔开&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;186&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;[Bind]&amp;nbsp;声明同样可以作用于&amp;nbsp;class&amp;nbsp;上&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;187&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;188&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[AcceptVerbs(HttpVerbs.Post)]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;189&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;PostDemo(FormCollection&amp;nbsp;fc)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;190&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;191&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewData[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Param1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;fc[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;param1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;192&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewData[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Param2&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;fc[&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;param2&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;193&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;194&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;也可以用&amp;nbsp;Request.Form&amp;nbsp;方式获取&amp;nbsp;post&amp;nbsp;过来的参数&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;195&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;196&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Request.Form&amp;nbsp;内的参数也会映射到同名参数。例如，也可用如下方式获取参数&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;197&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;public&amp;nbsp;ActionResult&amp;nbsp;PostDemo(string&amp;nbsp;param1,&amp;nbsp;string&amp;nbsp;param2)&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;198&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;199&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;View(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;GetDemo&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;200&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;201&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;202&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;203&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;处理上传文件的&amp;nbsp;Action&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;204&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;205&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;///&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;param&amp;nbsp;name="file1"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;与传过来的&amp;nbsp;file&amp;nbsp;类型的&amp;nbsp;input&amp;nbsp;的&amp;nbsp;name&amp;nbsp;相对应&lt;/span&gt;&lt;span style="color: #808080"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;206&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[AcceptVerbs(HttpVerbs.Post)]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;207&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ActionResult&amp;nbsp;UploadFile(HttpPostedFileBase&amp;nbsp;file1)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;208&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;209&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Request.Files&amp;nbsp;-&amp;nbsp;获取需要上传的文件。当然，其也会自动映射到同名参数&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;210&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;HttpPostedFileBase&amp;nbsp;hpfb&amp;nbsp;=&amp;nbsp;Request.Files[0]&amp;nbsp;as&amp;nbsp;HttpPostedFileBase;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;211&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;212&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;targetPath&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Upload&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Path.GetFileName(file1.FileName));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;213&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file1.SaveAs(targetPath);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;214&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;215&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;View(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;UploadDemo&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;216&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;217&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;218&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;219&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/luckdv/aggbug/1855924.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/luckdv/articles/1855924.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
