ASP.NET MVC ActionResult本质:JavaScriptResult & JsonResult

sonLength限制了被反序列化和序列化生成的JSON字符串的长度,默认值位为 2097152(0x200000,等同于 4 MB 的 Unicode 字符串数据)。RecursionLimit用于设置被序列化对象和反序列化生成对象结构的允许的层级数,默认值为100。定义在JsonResult的 ExecuteResult方法中通过JavaScriptSerializer对数据对象的序列化,并将序列化生成的JSON字符串作为内容对请求进行 响应,具体的逻辑基本上可以通过下面的代码片断来体现。 1: public class JsonResult : ActionResult 2:
http://www.w3dev.cn/article/20120909/ASP.NET-MVC-ActionResult-JavaScriptResult-JsonResult.aspx

ASP.NET MVC集成EntLib异常处理实例

处理后的异常结果呈现出来。三、自动创建JsonResult响应Ajax请求  用于实施认证的Action方法Index可以通过普通的HTTP-POST的形式来调用,同样也可以通过Ajax请求的方式来调用。对于Ajax 请求来说,我们最终会将通过EntLib处理后的异常封装成如下一个类型为ExceptionDetail的对象。如下面的代码片断所 示,ExceptionDetail具有与Exception对应的属性设置。最终根据抛出异常对象创建的ExceptionDetail对象会被用于创 建一个JsonResult对象对当前Ajax请求予以响应。 1: public class Excep
http://www.w3dev.cn/article/20120906/ASP.NET-MVC-EntLib-Exception-Handle-Instance.aspx

ASP.NET MVC集成EntLib异常处理实现

场处理策略对某个Action方法执行过程中抛出的异常进行处理。对于处理后的结果,则按照如下的机制对请求进行响应。[源代码从这里下载]对于Ajax请求,直接创建一个用于封装被处理后异常的数据对象,并据此创建一个JsonResult将异常信息回复给客户端。对于非Ajax请求,如果当前Action方法上应用HandleErrorActionAttribute特性设置了匹配的Action方法用于处理该方法抛出的异常,那么执行该方法并用返回的ActionResult对象响应当前请求。如果HandleErrorActionAttribute特性不曾应用在当前Action方法上,或者通过该特性指定的Acti
http://www.w3dev.cn/article/20120906/ASP.NET-MVC-EntLib-Exception-Handle-Achieve.aspx

javascrip云存储服务Parse介绍

  下面是个例子,利用parse实现了简单的用户信息注册和存储功能:!doctype htmlhead meta charset=utf-8 titleparse测试-实现注册功能/title script type=text/javascriptsrc=http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js/script script type=text/javascriptsrc=http://www.parsecdn.com/js/parse-1.0.14.min.js/script/headbody 用户
http://www.w3dev.cn/article/20120816/javascript-clound-storage-services-Parse.aspx

如何抠JavaScript效果代码

到哪些自己写的JavaScript自定义函数之类的,一并抠出来3)然后就是整合第二步骤抠出的代码就差不多了。4)分析效果代码效果HTML结构看看是如何,生成对应的HTML结构,然后就可以使用抠出来的JavaScript代码增加效果了。  此步骤还需要注意有可能直接查看源代码时只有一个容器而已,容器里面没有内容。容器内容可能是通过js文件提供数据源或者ajax动态从服务器加载的。  如果是ajax动态加载,使用firebug的网络-》XHR就可以监控到发出的所有ajax请求了和返回的数据。  如果是js文件,则通过第二步分析出数据源的变量名,看数据源结构是怎么样的,自己按照此结构生成数据源即可。
http://www.w3dev.cn/article/20120726/get-javascript-effect-code.aspx

jQuery ajax timeout讨论

  今天在csdn看到了一个jquery ajax中的timeout问题,地址http://topic.csdn.net/u/20120726/10/0fc851fd-fb54-455c-85db-4b60ffd2e375.html,一个人同时发送了100个ajax请求,timeout设置为5s,只返回了前面几个的ajax请求,后面ajax请求全部超时。  这个超时问题是jquery的timeout没处理好吗?其实我觉得不是,是浏览器并发请求处理数量有限制,导致后面发送的ajax请求需要等待前面发送的ajax处理完毕后才能继续。  查看jquery的源代码我们会发现,jquery处理超时是通过
http://www.w3dev.cn/article/20120726/jQuery-ajax-timeout.aspx

Enterprise Library-配置方式和对象创建方式

b创建体系的结构:通过BatchJobFactory创建BatchJob对 象,BatchJobFactory最终通过EL的EnterpriseLibraryFactory实现对象的创建,而BatchJobFactory 在进行对象创建工程中,会根据BatchJob类型指定的实现了ICustomFacotory的具体类型来创建对象,而我们定义的 BatchJobCustomFactory实现了该接口,以及实现真正的对象创建过程。由于在配置中每个BatchJob都具有一个具体的、唯一的名 称,一般地,我们通过传入具体的名称创建对应的BatchJob。但是如果我们在创建过程中,不曾传入Batch
http://www.w3dev.cn/article/20120701/Enterprise-Library-config-mode-object-create.aspx

ASP.NET MVC ControllerDescriptor对象

注入到Action方法的执行前后,我们会在Action方法的执行中对筛选器进行详细地介绍。  ControllerDescriptor的FindAction方法根据指定的Controller上下文和名称得到相应的Action方法,返 回的是用于描述Action方法的ActionDescriptor对象。而GetCanonicalActions得到当前Controller的所有 Action方法,返回类型为ActionDescriptor数组。二、ReflectedControllerDescriptor  在ASP.NET MVC应用编程接口中定义了抽象类ControllerDescripto
http://www.w3dev.cn/article/20120613/ASP.NET-MVC-ControllerDescriptor.aspx

ASP.NET MVC ActionDescriptor对象

在现有的基础上将表示Action方法的 MethodInfo对象作为了决定元素之一。也就是说,表示ReflectedControllerDescriptor对象唯一标识的 UniqueId属性通过自身的类型、Controller类型、Action名称和表示目标Action方法的MethodInfo对象四者派生。  对于通过方法GetParameters返回的用于描述所有参数的ParameterDescriptor数组,也是通过对Action方法的参数列表进行反射来创建的。Execute方法最终传入参数列表调用MethodInfo对象执行Action方法。  ReflectedControll
http://www.w3dev.cn/article/20120613/ASP.NET-MVC-ActionDescriptor.aspx

ASP.NET MVC ParameterDescriptor对象

Descriptor  原生的ParameterBindingInfo是通过针对表示参数的ParameterInfo进行反射获得,这样的ParameterBindingInfo通过ReflectedParameterDescriptor类型表示。如下面的代码片断所示,这个ParameterInfo对象通过只读属性ParameterInfo表示,并在构造函数中被初始化。 1: public class ReflectedParameterDescriptor : ParameterDescriptor 2: { 3: public ReflectedParameterD
http://www.w3dev.cn/article/20120613/ASP.NET-MVC-ParameterDescriptor.aspx

.net remoting-远程对象的生命周期管理[下篇]

,垃圾回收操作一般出现在第0代对象充满的时候),垃圾回收器扫 描托管堆,标记垃圾对象(实际上是标记非垃圾对象,未被标记的则是垃圾对象),并最终回收垃圾对象。  通过前面章节的介绍,我们知道了,CLR通过当 前程序运行时的一个根(root)的列表来判断一个对象是否是垃圾对象没有被根直接或者间接引用的对象则是垃圾对象。从另一个角度讲,如果想让一个对 象存活,或者你试图让一个对象具有更长的生命周期,那么不就必须使它被一个根直接或者间接引用比如你可以使用一个全局变量引用它,那么在这个全局变量 的生命周期内,这个对象就会一直存活;你甚至可以让一个静态变量引用它,那么这个对象将永远不会被垃圾回收,直到所在
http://www.w3dev.cn/article/20120531/.net-remoting-object-Life-cycle-II.aspx

.net remoting-远程对象的生命周期管理[上篇]

标记所有 被它直接或者间接引用的对象。所以当扫描完毕之后,那些被标记的对象就是在当前不可以被当成垃圾回收的对象,这些对象一般称为可达对象 (reachable object,因为可以通过根来找到),反之,除此以外的对象则就是垃圾对象了。  标记可达对象只是垃圾回收的第一步,第二步才是 对这些未被标记的垃圾对象进行回收。在开始之前我们必须能够分别两种不同的对象,一种称为可终结(Finalizable)对象和非可终结对象。我们知 道,在很多情况下,我们的对象会引用一些非托管的资源,比如一个文件的句柄,一个数据库连结,或者一个Socket连结等等。在我们回收这些对象的时候, 如果没有这些非托管的资
http://www.w3dev.cn/article/20120531/.net-remoting-object-Life-cycle-I.aspx

WCF Extension通过对象池创建Service Instance

anceLocator实现了3基于对象池的功能:从对象池中获取对象 (GetInstanceFromPool);将对象释放到池中(ReleaseInstanceToPool);清理被GC回收的weak reference(Scavenge)。代码很简单,我就不再一一介绍了。有一点需要注意的,由于PooledInstanceLocator工作在一 个多线程环境下,保证线程的同步时最重要的。在本例中为了简便,我直接对service type对象进行枷锁,由于本例比较简单,不会引起什么问题。在实际的项目开发中,如何对Type对象进行加锁就需要三思了,因为type对象一个全局对 象(可以参考的我的文章
http://www.w3dev.cn/article/20120527/WCF-Extension-object-pool-create-Service-Instance.aspx

WCF Extension Point使用介绍

自定义的 InstanceContextProvider,你可以以你需要的方式关联request和service instance。比如:为了性能的提升,你可能试图通过一种对象池的机制实现对service instance的创建和提取,当需要使用到某个service instance的时候,先从对象池中获取该对象,如果不存在再从新创建对象。当service instance调用完毕,将其放入对象池中。这样避免了过于频繁的对象创建而引起对性能的影响。有兴趣的朋友不妨试着做一做。  注:当你自定义InstanceContextProvider的时 候,一般继承base class:System.S
http://www.w3dev.cn/article/20120524/WCF-Extension-Point.aspx

WCF底层异常处理框架实现原理一

个WCF体系下,数据存在的形态大体可以分为两种:XML和托管对象(Managed Object)。WCF建立在.NET平台下,利用托管语言(C#和VB.NET)开发人员提供了一个面向对象的编程模型,所以,在WCF体系最顶层的数 据形态表现为.NET托管对象。而最终服务调用体现在消息的交换上,消息时基于XML的(除了少部分非XML的消息,比如JSON)。从数据转化的角度上 讲,WCF起到了一个将数据从这两种形态数据进行转化和适配的作用。  在WCF异常处理体系中,对于异常或者错误,在XML的世界里最终通过Fault消息体现;而在托管对象的世界中,即使相应的Exception对 象。上面以小节,我
http://www.w3dev.cn/article/20120502/wcf-basic-excption-handle-1.aspx

基于IIS的WCF服务寄宿(Hosting)

ode.ServiceHostFactory),通过反射创建继承自基类 System.ServiceModel.Activation.ServiceHostFactoryBase的ServiceHostFactory 对象。最后通过ServiceHostFactory创建的继承自基类System.ServiceModel.ServiceHostBase的 ServieHost对象对Serivce进行寄宿。二、ASP.NET并行(Side by Side)模式  对于基于IIS服务寄宿,System.ServiceModel.Activation.HttpModule将基于.svc的请求劫持并分
http://www.w3dev.cn/article/20120425/IIS-wcf-service-hosting.aspx

Firefox支持多文件选择、ajax无刷新上载

is.files) /  在用户选择多个文件后,handleFiles函数可以通过FileList对象得到所选择的每个File对象。  通过拖放操作实现文件的多选,只需要先定义一个可拖放的区域,然后添加,dragenter、dragover和drop事件,在drop事件里,可以通过e.dataTransfer.files 得到所选择的文件集合。  对于每一个文件对象,可以通过name属性得到文件名,size属性得到文件的大小,type属性得到文件的MIME 类型,可以使用FileReader对象读取文件的内容。比如,下面的例子是得到文件名、文件大小和文件类型的:!DOCTYPE html P
http://www.w3dev.cn/article/20120413/firefox-support-multiple-files-upload.aspx

linq使用简介

using System.Linq;using System.Xml;using System.Xml.Linq;static class HelloLinqToXml{ static void Main() { var books = new[] { new {Title=Ajax in Action, Publisher=Manning, Year=2005 }, new {Title=Windows Forms in Action, Publisher=Manning, Year=2006 }, new {Title=RSS and Atom in
http://www.w3dev.cn/article/20120319/linq-usage-introduce.aspx

CallBack-PageCommand和JSON基础

  JavaScript对象标记法,英文名称 JavaScript Object Notation(简称JSON),是一种文字格式标记法,相较于 XML 而言,JSON 明显更为简洁。而 JSON 这种精简的数据表示方式,非常适合用于 AJAX 的数据转输。  我们使用「BasePage 撰写 PageCommand 事件 (使用 CallBack)」一文中提及的 PageCommand 来执行 AJAX,并在 PageCommand 事件中回传 JSON 字符串,客户端以 JavaScript 取得回传的 JSON 对象。  在页面上放置一个 Button 来执行 CallBack Page
http://www.w3dev.cn/article/20120318/CallBack-PageCommand-JSON-Basic.aspx

CallBack-PageCommand和JSON应用

取得对象执行步骤「1.客户端 JSON 序列化」,而伺服端回传给呼叫 ReceiveServerData 函式,执行步骤「4.客户端 JSON 反序列化还原对象」,并显示 CallBack 后的对象。 script type=text/jscript function ReceiveServerData(value){ //4.客户端 JSON 反序列化还原物件 var oUser = Sys.Serialization.JavaScriptSerializer.deserialize(value) //显示 CallBack 后的对象
http://www.w3dev.cn/article/20120318/CallBack-PageCommand-JSON-Usage.aspx

ASP.NET ICallbackEventHandler接口

端的方法而不需要执行一个完整的Postback过程,也就是说使得Server端控件可以很好的支持Ajax。   Callback不同于Postback之处在于向服务器发送请求时只有ViewState和用户自定义信息被发送到服务器端,请求完毕后,只返回用户自定义结果,而不会从Render页面。  GridView控件正是使用了这个技术来实现无刷新的分页及排序功能,那么它是如何实现的哪,我们又如何在自定义控件中添加该功能哪?本文将会简单地阐述如何使用ASP.NET 2.0 Callback来实现Ajax.1. ICallbackEventHandler 接口  ASP.NET Server端控件可
http://www.w3dev.cn/article/20120317/ASP-NET-ICallbackEventHandler-interface.aspx

LINQ操作Objects对象

//LINQ查询集合对象//students对象是泛型集合,不能为null,否则抛异常 var theStudents = from s in students where s.ID 115 s.FirstName.Contains(a) //where s.ExamScores[0] == 99 select s; Response.Write(theStudents.Count().ToString() + b
http://www.w3dev.cn/article/20120316/linq-to-object.aspx

使用LINQ操作XML

型的对象,合法的子节点内容包含:n一个字符串,它将被看作文本内容添加到XElement对象中。推荐使用这种方式为一个元素添加值。XML LINQ实现将会在内部创建一个XText节点n一个XText对象,可以包含一个string或者CData值。它将作为XElement对象的子节点添加,这种情况主要用于CData值。n一个XElement,作为父XElement的子节点添加n一个XAttribute,作为XElement对象的属性添加n一个XProcessingInstruction或者XComment,作为子节点添加n一个IEnumerable,将会对包含每个对象应用以上规则n其它任何对象,这
http://www.w3dev.cn/article/20120315/linq-manipulate-xml.aspx

C#访问DHTML DOM对象

del (DOM)(文档对象模型),用编程的方式来访问Web中的每一个元素。  要访问Web页面的元素,首先必须引用Web Browser控件,以便应用其属性、对象、方法和事件。通过调用Navigate方法,就可以用Web Browser来打开页面。但要用程序进行访问,必须等到文档全部下载完了之后才能够进行,即文档的Complete事件发生;然后把Web Browser对象的Document属性转换成IHTMLDocument2接口对象,这样就可以访问该对象的集合了,比如:Link集合,Image 集合等,这些集合将返回IHTMLElementCollection对象。本文以Link集合做例
http://www.w3dev.cn/article/20120303/csharp-visit-dhtml-dom-object.aspx

C#泛型-List对象

/创建Person对象publicPerson(stringName,intAge){this._name=Name;this._age=Age;}//姓名publicstringName{get{return_name;}}//年龄publicintAge{get{return_age;}}}classProgram{staticvoidMain(){//创建Person对象Personp1=newPerson("张三",30);Personp2=newPerson("李四",20);Personp3=newPerson("王五",50);//创建类型为Person的对象集合ListPer
http://www.w3dev.cn/article/20120210/csharp-generic-list-object.aspx

DOM对象有哪些方法和属性

DOM对象常用对象的方法和属性HTML文档中的常用节点类型: 接口 nodeType 备注 Element 1 元素节点
http://www.w3dev.cn/article/20120209/DOM-attribute-method.aspx

asp遍历applicaton/session对象

  下面是一个asp遍历applicaton/session对象的源代码+展开-HTML"CODEPAGE="936"%%Response.Expires=0;Response.Buffer=true;vartPageStartTime=newDate();%htmlheadtitle网站-Application变量-Session变量/titlemetahttp-equiv="Content-Type"content="text/html;charset=gb2312"STYLEtype=text/cssbody,td{FONT-SIZE:10pt;FONT-FAMILY:"Arial","
http://www.w3dev.cn/article/20111219/asp-Traversal-application-session.aspx

ajax技巧

的,则需要如下处理:在服务器端声明是xml文件类型。如PHP:header("Content-Type:text/xml;charset=utf-8");ASP:Response.ContentType = "text/xml";JSP:response.setHeader("ContentType","text/xml");利用responseText获取,然后封装成XML。在AJAX应用上,JSON和JsonML是XML非常好的替代品。 来源:http://dancewithnet.com/2007/09/25/ajax-tips
http://www.w3dev.cn/article/20111213/ajax-tips.aspx

JavaScript程序员面试问题总结

JavaScript 代码校验工具吗?有读过或推荐的 JavaScirpt 书籍吗?会为你的 JavaScript 代码写单元测试吗?初/中级:  为什么基本上所有对象都有 toString 方法?知道 Mozilla Firefox 用的是哪个解析器吗? 其他浏览器呢?JavaScript 支持 lambda 函数吗?你用过或写过的最有用的 JavaScript 函数是什么?JavaScript 有块级作用域吗?能解释下 Ajax/XMLHttpRequest 是如何工作的吗?JavaScript 支持类继承吗?能写一个用了 with 表达式的代码片段吗?知道什么是 Greasemonkey
http://www.w3dev.cn/article/20111128/javascript-programmer-interview-question.aspx

WEB程序员必备的Javascript框架

culo.us 是一个优秀的跨浏览器JavaScript用户界面库,提供包括动画,拖放,Ajax,单元测试等API。13. Javascript MVC FrameworkJavaScriptMVC 是一个开源的JavaScript框架,包含最好的jQuery开发理念。14. Spry Javascript FrameworkSpry 是一个用于快速构建支持的Web应用程序的JavaScript框架。15. MooTools Javascript FrameworkMooTools 是一个模块化的、面向对象的JavaScript框架,适合中高级JavaScript开发人员。16. Sprout
http://www.w3dev.cn/article/20111128/javascript-programmer-javascript-framework.aspx