文章分类 -  .NET技术点拾集

摘要:C# 4.0中的新出现的dynamic关键字允许你做到很多以前很难实现的事情,但是dynamic也很容易让你忘记C#本身还是一个强类型的编程语言,所以,在使用中就会产生误区。最近我发现我自己想要创建测试用的View页面,后面有一个简单的控制器相对应。因为是临时使用,所以我使用了一个复杂匿名对象作为Model,并且使用dynamic视图来显示它。结果我错了….匿名类型的限制下面我们先看一段简单的示例来说明问题。下面给出控制器中的操作方法,传递一个匿名类型到前台的View模型中:[csharp] view plaincopypublic ActionResult UsingDynamic(){re 阅读全文
posted @ 2013-11-19 12:19 风舞烟 阅读(877) 评论(0) 推荐(0)
摘要:要想解决第二个问题就没这么容易了,我们需要更深入的理解WebAPI的工作方式。 其实对于WebAPI来说,它最初被设计为和WCF一样的:客户端、服务端两套结构,我们到现在之所以还没有提到客户端,是因为我们的请求别的方式来封装成HTTP请求或接收HTTP相应的,比如AJAX和Form表单提交。 在这里先给出一个服务端的响应工作流,让大家有个大体上的认识 大 家可以看到,HTTP的请求最先是被传递到HOST中的,如果WebAPI是被寄宿在IIS上的,这个HOST就是IIS上,HOST是没有能力也没有必 要进行请求的处理的,请求通过HOST被转发给了HttPServer此时已经进入Web... 阅读全文
posted @ 2013-11-19 11:37 风舞烟 阅读(942) 评论(0) 推荐(1)
摘要:要解决这些问题,要了解一下WebAPI的基本工作方式。(一)WebAPI中工作的Class在MVC中大家都知道,获取Request和Response使用HttpRequest和HttpResponse两个类,在WebAPI中使用两外两个类: HttpRequestMessage和HttpResponseMessage,分别用于封装Requset和Response。除了这两个类之外,还有一个常见的抽象 类:HttpMessageHandler,用于过滤和加工HttpRequestMessage和HttpResponseMessage(二)解决第一个问题其 实第一个问题之所以被提出来应该是和客户端 阅读全文
posted @ 2013-11-19 11:06 风舞烟 阅读(783) 评论(0) 推荐(0)
摘要:不管是因为什么原因,结果是在新出的MVC中,增加了WebAPI,用于提供REST风格的WebService,个人比较喜欢REST风格的WebService,感觉比SOAP要轻量级一些,而且对客户端的要求也更少,更符合网络数据传输的一般模式,客户端完全摆脱了代理和管道来直接和WebService进行交互,具体的区别可以参见Web 服务编程,REST 与 SOAP (一)环境准备 本机的环境是XP+VS2010,需要安装VS2010 SP1升级包,MVC4升级包,Vs2010安装SP1后会影响SQLServer2008的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的 MVC ... 阅读全文
posted @ 2013-11-19 11:03 风舞烟 阅读(1940) 评论(0) 推荐(0)
摘要:上面,你已经看到如何创建一个基本的数据模型以及如何利用绑定来显示它的属性。但是KO最重要的一个属性就是当View Model发生变化时能够自动的更新UI界面。KO是如何能够知道你的View Model已经发生改变了呢?答案是:你需要将你的model属性声明成observable的, 因为它是非常特殊的JavaScript 对象,能够通知用户它的改变以及自动检测依赖关系。例如:重写上述例子中的View Model为以下代码:你根本不需要对View进行更改,所有的data-bind语法依然正常工作。所不同的是,现在它能够自动检测变化,并通知它自动更新界面(View)。Reading and wri 阅读全文
posted @ 2013-11-18 15:26 风舞烟 阅读(226) 评论(0) 推荐(0)
摘要:Knockout是建立在以下3个核心功能之上的: 1、 属性监控与依赖跟踪 2、 声明式绑定 3、 模版机制 在本节中,我们将学习3个核心里面的第一个。但在这之前,先让我们学习一下MVVM设计模式和View Model的概念。Model-View-View Model (MVVM)是一种创建用户界面的设计模式。通过它只要将UI界面分成以下3个部分,就可以使复杂的界面变得简单:1、Model,用于存储你应用程序数据,这些数据表示你业务领域的对象和数据操作(例如:银行可以进行资金转账),并且独立于任何界面。当使用KO的时候,通常是使用Ajax向服务器请求数据来读写这个数据模型。2、View ... 阅读全文
posted @ 2013-11-18 15:20 风舞烟 阅读(359) 评论(0) 推荐(0)
摘要:Knockout的核心类库是纯JavaScript代码实现的,不依赖任何其他类库,所以按照如下步骤即将KO添加到你的项目里:1、下载Knockout的最新版本,在正式开发和产品使用中,推荐使用默认的压缩版本(knockout.x.x.js)下载地址:http://knockoutjs.com/downloads/index.html对于调试使用,推荐使用完整的未压缩版本(knockout-x.x.debug.js),压缩版和未压缩版功能相同,但是未压缩版本具有全变量名和注释,也没有隐藏内部的API,使得源代码更具可读性。 2、在你的HTML页面中通过 下面你就可以开始使用了。 如果你是刚开.. 阅读全文
posted @ 2013-11-18 15:08 风舞烟 阅读(701) 评论(0) 推荐(0)
摘要:1、Knockout.js是什么?Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的用户界面。任何时候你的局部UI内容需要自动更新(比如:依赖于用户行为的改变或者外部的数据源发生变化),KO都可以很简单的帮你实现,并且非常易于维护。2、KO重要特性以及优点 I、KO重要特性优雅的依赖跟踪-任何时候当数据源模型发生变化时,它都能够自动的更新你UI的指定内容。 声明绑定-它通过简单浅显的方式将你的UI与数据源模型进行绑定,你可以使用任意嵌套的结构模版来组建一个复杂的动态界面。... 阅读全文
posted @ 2013-11-18 15:00 风舞烟 阅读(374) 评论(0) 推荐(1)