摘要:关于函数 在Javascript中函数实际上就是一个对象,具有引用类型的特征,所以你可以将函数直接传递给变量,这个变量将表示指向函数“对象"的指针,例如:function test(message){ alert(message); } var f = test; f('hello world');你也可以直接将函数申明赋值给变量:var f = function(message){ alert(message); }; f('hello world'); 在这种情况下,函数申明中可以省略函数名称,因为此时名... 阅读全文
posted @ 2013-06-16 02:05 xfrog 阅读 (5086) 评论 (1) 编辑
摘要:前端开发中JavaScript代码的维护总是让人头疼,特别是在富客户端应用中,必须要编写非常庞大的JavaScript代码,虽然JavaScript声称是面向对象的语言,但对于现代语言中常见的继承、强类型等的支持十分有限。如果我们能够将C#语言中的特性运用于JavaScript上,那么肯定将极大地提高JavaScript代码的维护性,提升开发效率。Saltarelle编译器就是这样的一个工具,他能将C#代码编译为JavaScript代码。本文将展示如何使用Saltarelle编写JavaScript代码,我们将结合Saltarelle.jQuery和Saltarelle.Knockout库说明 阅读全文
posted @ 2013-05-05 19:32 xfrog 阅读 (3703) 评论 (7) 编辑
摘要:在Silverlight 4中受信应用已经被支持,受信应用简单的说就是可以访问一些本地受限资源的Silverlight应用。在Silverlight 4中受信应用必须是OOB类型,即必须先安装在本地,同时受信应用能访问的资源也有限,例如只能访问我的文档、我的图片等位置的文件。而在Silverlight 5中受信应用的功能做了很大的改进和增强:受信应用可以运行于浏览器之内可以无限制的访问本地文件系统访问强安全性方法时,不会再引发MethodAccessException异常当运行于桌面模式时,可以创建多个窗口在Windows平台可以直接调用非托管函数 可以看到,在Silverlight 5中受. 阅读全文
posted @ 2012-03-05 23:49 xfrog 阅读 (4729) 评论 (7) 编辑
摘要:动态编译与WS服务,有关系么?今天就乱弹一番,如何使用动态编译动态生成WS服务调用的代理类,然后通过这个代理类调用WS服务。 首先,动态编译这玩意在.NET里面是非常简单的,实际上只涉及到两个类型:CodeDomProvider以及CompilerParameters他们都位于System.CodeDom.Compiler命名空间。 以下代码可将源码动态编译为一个程序集:隐藏行号 复制代码 ? 动态编译CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");CompilerParameters 阅读全文
posted @ 2011-07-30 14:21 xfrog 阅读 (2259) 评论 (3) 编辑
摘要:MVC中的辅助方法与ASP.NET中的服务器控件类似,都是用于生成特定的HTML代码。MVC提供了三个辅助类,它们分别是:用于生成HTML元素的HtmlHelper,用于Ajax处理的AjaxHelper,以及用于生成Url的UrlHelper。这三个辅助类通过ViewPage的Ajax、Html、Url属性向外提供。由于视图都是是从ViewPage继承的,所以,我们在视图模板中可以直接通过这三个属性来调用辅助方法。 AjaxHelper、HtmlHelper、UrlHelper位于System.Web.Mvc命名空间中,如以下类图所示,这三个辅助类本身仅包含了一些基本的方法和属性,而具体辅助 阅读全文
posted @ 2011-02-11 16:01 xfrog 阅读 (4541) 评论 (5) 编辑
摘要:验证用于保证用户输入的正确性,及时阻止用户提交错误数据,确保数据符合业务规则。 MVC中可直接在控制器Action方法中进行验证:检查传入参数,如果传入参数不符合业务规则,则通过控制器的ModelState属性的AddModelError方法向模型状态添加错误消息,通过ModelState.IsValid判断模型是否全部通过验证,随后,在视图中通过Html.ValidationSummary、Html.ValidationMessage、Html.ValidationMessageFor辅助方法生成验证消息。 在Controller中验证并不是最好的方法:验证过于分散,容易造成重复代码,不利于 阅读全文
posted @ 2011-01-25 19:57 xfrog 阅读 (5830) 评论 (3) 编辑
摘要:MVC可以将用户提交的数据绑定到Action参数,我们将这个过程称之为模型绑定,在模型绑定中有两个关键:一个是值提供器,用于确定数据来源,另一个称为模型绑定器,用于确定如何将值绑定到特性的数据模型。MVC中默认的值提供器 值提供器是一组实现了IValueProvider接口的类,MVC中的值提供其使用了标准的抽象工厂设计模式,其类图如下: MVC提供了四种默认的值提供器:FormValueProvider:表单数据,对应于ASP.NET的Request.Form集合QueryStringValueProvider:查询字符串,对应于ASP.NET的Request.QueryString集合Ht 阅读全文
posted @ 2011-01-16 15:21 xfrog 阅读 (5078) 评论 (6) 编辑
摘要:我们知道在MVC框架中,最终通过ActionResult来生成应答内容。上一篇中我们介绍了MVC中默认的结果类型,本章我们将详细介绍ViewResult及PartialViewResult,了解MVC是如何通过视图来生成应答内容的。 MVC默认的视图被称为Web Forms视图引擎,原因在于它的视图文件使用与ASP.NET Web Forms相同的文件类型(.aspx .ascx),并且使用ASP.NET的页面解析器来解释视图文件内容。也在于,我们在编写视图文件时,可以完全像编写aspx页面文件一样,使用智能提示功能及内联代码等。 与传统ASP.NET页面一样,在运行时内建的页面编译器会将我们 阅读全文
posted @ 2011-01-10 20:01 xfrog 阅读 (6147) 评论 (7) 编辑
摘要:ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的是非ActionResult类型,控制器将会将结果转换为一个ContentResult类型。默认的ControllerActionInvoker调用ActionResult.ExecuteResult方法生成应答结果。 MVC中实现的默认ActionResult如下:1、ContentResult: 返回简单的纯文本内容,可通过ContentType属性指定应答文档类型,通过ContentEncoding属性指定应答文档的字符编码。可通过Control 阅读全文
posted @ 2011-01-06 22:08 xfrog 阅读 (9505) 评论 (3) 编辑
摘要:前一篇中我们介绍了过滤器,通过方法和结果过滤器我们可以在MVC执行方法及结果的前后注入自己的功能,通过授权过滤器可以执行一些权限检查,阻止无权用户调用方法,通过异常过滤器处理方法执行过程中产生的异常。那么在执行方法之前,MVC又是如何确定使用何种控制器及其方法的呢? 我们已经知道,MVC使用DefaultControllerFactory控制器工厂来实例化控制器,其大致过程如下:1、默认Route类的GetRouteData方法将按我们设定的Url规则解析当前请求的Url,并将Url规则中的给个参数存入RouteData.Values集合中。我们知道Mvc添加了一个默认的Route项:按以上规 阅读全文
posted @ 2011-01-01 16:38 xfrog 阅读 (4025) 评论 (5) 编辑