MVC学习

MVC

全新的membership框架Asp.net Identity(1)——.Net membership的历史

2014-12-30 08:00 by JustRun, 1532 阅读, 收藏编辑

在Asp.net上,微软的membershop框架经历了Asp.net membership到Asp.net simple membership,再到现在的Asp.net Identity. 每一次改变,都使得验证框架更加的适应变化和可定制。这篇文章是Asp.net Identity系列的开篇,主要...

使用Filter跟踪Asp.net MVC页面加载时间

2014-10-16 08:08 by JustRun, 592 阅读, 收藏编辑

最近,客户一直反馈系统使用慢,有时候能够指出具体是哪个页面,有时候又只是笼统地反馈慢。这种问题就像是幽灵一样,非常不好处理。因为导致这种问题的因素非常之多,而且在开发工程中,很难模拟出实际运行是的环境。理论上,对于所有的页面做压力测试是个解决方案,但是这种方式的成本太高,又没有办法很快地定位和解决客...

下一代Asp.net开发规范OWIN(3)—— Middleware

2014-09-12 09:50 by JustRun, 1706 阅读, 收藏编辑

Middleware是OWIN管道的基本组成单元,最后拼接的OWIN管道来处理客户端请求,输出网页。这篇文章,首先看看Web Form, MVC, Web API如何结合OWIN使用。 然后将如何编写Middleware和编写一个具体的Cache Middleware.阅读目录:一. 原有的Web ...

下一代Asp.net开发规范OWIN(2)—— Katana介绍以及使用

2014-09-09 07:50 by JustRun, 2502 阅读, 收藏编辑

接上篇OWIN产生的背景以及简单介绍,在了解了OWIN规范的来龙去脉后,接下来看一下Katana这个OWIN规范的实现,并看看如何使用在我们的Web开发中。阅读目录:一. Katana项目的结构和包含的内容 1.1 Host 1.2 Server 1.3 Middleware 1.4 Applica...

下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍

2014-09-04 07:22 by JustRun, 7310 阅读, 收藏编辑

随着VS2013的发布,微软在Asp.Net中引入了很多新的特性,比如使用新的权限验证模块Identity, 使用Async来提高Web服务器的吞吐量和效率等。其中一个不得不提的是OWIN和Katana. OWIN的全称是Open Web Interface For .Net, OWIN是.Net开...

对象映射工具AutoMapper介绍

2014-08-29 09:33 by JustRun, 1793 阅读, 收藏编辑

AutoMapper是用来解决对象之间映射转换的类库。对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间。一. AutoMapper解决了什么问题?要问AutoMapper解决了什么问题? 难道不是对象映射转换的问题吗? 当然是,不过...

IoC容器Autofac(5) - Autofac在Asp.net MVC Filter中的应用

2014-06-18 07:30 by JustRun, 670 阅读, 收藏编辑

Autofac结合EF在MVC中的使用,上一篇IoC容器Autofac(4) - Autofact + Asp.net MVC + EF Code First(附源码)已经介绍了。但是只是MVC中Controller实现了依赖注入。而在Filter中如何实现依赖的注入? 下面我们以Filter中如何...

MVC, MVP, MVVM比较以及区别(下)

2014-05-14 14:01 by JustRun, 2138 阅读, 收藏编辑

上一篇得到大家的关注,非常感谢。一些朋友评论中,希望快点出下一篇。由于自己对于这些模式的理解也是有限,所以这一篇来得迟了一些。对于这些模式的比较,是结合自己的理解,一些地方不一定准确,但是只有亮出自己的观点,才能抛砖引玉不是? 欢迎各位拍砖。:)阅读目录:四.MVP模式 4.1MVP的思想 4....

MVC, MVP, MVVM比较以及区别(上)

2014-04-22 10:03 by JustRun, 7093 阅读, 收藏编辑

MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式。以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解。现在一边查资料,并结合自己的理解,来谈一下对于这三种模式思想的理解,以及它们的区别。欢迎各位高手拍砖。

VS 2013中的新特性browser link

2014-04-11 08:51 by JustRun, 610 阅读, 收藏编辑

Browser Link是连接VS和浏览器之间的通道。有了这个特性,web程序就能够和VS交互传递数据。这个特性在VS2013中是默认开启的。当开启了Browser Link, web程序运行的时候,就会注册一个HttpModule到asp.net的生命周期中,这个HttpModule的功能就是在每个输出的网页中,注入一段脚本,这段脚本的作用就是负责VS IDE和网页间的通讯。

Asp.net MVC的Model Binder工作流程以及扩展方法(3) - DefaultModelBinder

2014-04-02 08:36 by JustRun, 827 阅读, 收藏编辑

Default Binder是MVC中的清道夫,把守着Model Binder中的最后一道防线。如果我们没有使用Custom Model Binder等特殊处理,那么Model的绑定都是有Default Binder处理的。这篇文章,一起看看Default Binder和如何扩展Default Binder.一,Default Binder的流程下面的图是Default Model Binder中的关键方法BindModel的代码逻辑图。ValueProvider是包装好的类似于字典容器,里面包含了所有request中能够获取到的值(无论是Form提交的,还是Querystring中的)

Asp.net MVC的Model Binder工作流程以及扩展方法(2) - Binder Attribute

2014-03-27 09:24 by JustRun, 818 阅读, 收藏编辑

上篇文章中分析了Custom Binder的弊端: 由于Custom Binder是和具体的类型相关,比如指定类型A由我们的Custom Binder解析,那么导致系统运行中的所有Action的访问参数,只要是类型A, 都会使用Custom Binder. 这篇文章将会介绍Binder Attribute方式扩展MVC的Model Binder, 这种方式更加的灵活和可操控。本篇文章参考了ModelBinder——ASP.NET MVC Model绑定的核心, 结合Artech的这篇文章,对于MVC的Model Binder一定能够理解的更加深刻

Asp.net MVC的Model Binder工作流程以及扩展方法(1) - Custom Model Binder

2014-03-19 08:02 by JustRun, 1136 阅读, 收藏编辑

在Asp.net MVC中, Model Binder是生命周期中的一个非常重要的部分。搞清楚Model Binder的流程,能够帮助理解Model Binder的背后发生了什么。同时该系列文章会列举MVC中Model Binder的扩展点,以及如何使用这些扩展点。阅读目录:一.MVC中的Model Binder的工作流程二.继承IModelBinder, 实现CustomeBinder三.使用Custom Model Binder的弊端四.总结一, MVC中的Model Binder的工作流程在MVC中, 当一个请求发送到服务器,先是要经过Route匹配, 找到对应的Controller和A

Asp.net MVC验证那些事(4)-- 自定义验证特性

2014-03-10 07:54 by JustRun, 1464 阅读, 收藏编辑

在项目的实际使用中,MVC默认提供的Validation Attribute往往不够用,难以应付现实中复杂多变的验证需求。比如, 在注册用户的过程中,往往需要用户勾选”免责声明”,这个checkbox往往是必填项,但是MVC中并没有提供对于checkbox必选的验证。这篇文章通过解决checkbox必选验证的问题,看看如何在MVC中定义自己的自定义验证属性。阅读目录:一.CheckBox必选验证的困局二.对于服务端ValidationAttribute的实现分析三.自定义EnforceTrueAttribute实现服务器端验证四.添加客户端验证五.总结一, CheckBox必选验证的困局先来引

在MVC中处理异常的总结

2014-02-21 07:53 by JustRun, 664 阅读, 收藏编辑

无论是桌面程序还是web程序,异常处理都是必须的. 一般的处理方式是, 捕获异常,然后记录异常的详细信息到文本文件或者数据库中.在Asp.net MVC中可以使用内建的filter——HandleError来处理程序发生的异常。接下来,来看看如何在我们的MVC项目中使用。要让HandleErrorAttribute特性工作,需要修改我们的Web.config文件配置...HandleErrorAttribute 特性能够在Action, Controller, 和Global 三个级别中使用1. 在 Action方法级别使用在Action方法上使用,非常简单,只需要在方法头上加上HandleE

Asp.net MVC Razor模板引擎技巧分享

2014-02-12 08:25 by JustRun, 3176 阅读, 收藏编辑

Razor是Asp.net MVC中新的默认模板类型, 语法简单易用。这篇文章不涉及Razor的语法,主要介绍Razor的一些在MVC项目中的使用技巧,以及脱离MVC环境下,如何使用Razor.阅读目录:一、Razor和MVC关系二、MVC中扩展Razor寻找模板范围三、MVC中使用Razor生成Html片段四、脱离MVC, 使用Razor独立作为模板引擎五、其它1. Razor和MVC关系Razor是MVC中的默认模板引擎,MVC中还有ASPX模板引擎,在早期的MVC版本中,默认使用的是ASPX模板引擎。当默认添加一个View文件的时候,可以看到MVC默认带的2个模板引擎。你还可以引入其它的

Asp.net MVC验证哪些事(3)-- Remote验证及其改进(附源码)

2014-01-04 18:10 by JustRun, 1477 阅读, 收藏编辑

表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等。但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决。这篇文章将会介绍MVC中如何使用【RemoteAttribute】来解决这类验证需求,同时会分析【RemoteAttribute】的不足,以及改进的方法.本文相关的源代码在这里 MVC-Remote-Validation.zip一, RemoteAttribute验证使用如果需要用户把整个表单填完后,提交到后台,然后才告诉用户说,“你注册的用户已经被占用了,请换一个用户名”,估计很多用户都可能要飚脏话了. MVC中的Remote验证是通过Ajax

Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用

2013-12-31 09:20 by JustRun, 1183 阅读, 收藏编辑

上篇文章Asp.net MVC验证那些事(1)-- 介绍和验证规则使用中,介绍了Asp.net MVC中的验证功能以及如何使用。这里将对MVC中内置的验证规则进行总结。一,查找所有验证规则上篇文章中提到,所有的验证规则都是位于下面的命名空间下:using System.ComponentModel.DataAnnotations;我们可以用ILSpy反编译工具,看看这个命名空间下都有些什么. 下面的图让我们一目了然,在这个命名空间下,.net为我们提供了那些验证规则。不过,有三点需要注意:1. 列出的类基本都是Attribute,如果不理解Attribute,可以看这里.Net Attribu

Asp.net MVC验证那些事(1)-- 介绍和验证规则使用

2013-12-17 08:33 by JustRun, 1645 阅读, 收藏编辑

数据的有效性验证,是程序开发中必不可少的环节。这篇文章,我们将用一个实例来说明如何在MVC中使用Validation来保证无论是新增或者更新数据的时候,都必须符合我们定义的验证规则,否则就会提示错误。一, DRY原则DRY是Don’t repeat yourself的缩写,意思是不要写重复的代码。MVC中的Validation设计就是遵循了这个原则。 比如下面中的Movie类, 当用户在网页上填写Movie信息的时候,并保存的数据库中的时候, 由于Title是我们期望的必填项,所以:1. 在提交表单的时候,需要检查Title是否填写。如果没有,显示警告信息。2. 在保存到数据库中的时候,也需要

.Net Attribute详解(下) - 使用Attribute武装枚举类型

2013-12-10 08:18 by JustRun, 1569 阅读, 收藏编辑

接上文.Net Attribute详解(上)-Attribute本质以及一个简单示例,这篇文章介绍一个非常实用的例子,相信你一定能够用到你正在开发的项目中。枚举类型被常常用到项目中,如果要使用枚举ToString方法直接输出字符串, 常常不是我们想要的输出,因为它是安装定义的名称输出字符串。比如你有一个性别枚举,有Man, Woman. 你在中文系统中,在创建用户的页面上,这个枚举代表的下拉框,当然不是显示Man和Woman的,而是要显示”男”和”女“。 下面就介绍如何使用Attribute非常方便的输出我们想要的字符串。1, 使用System.ComponentModel.Descripti

美国快递跟踪链接

2013-11-19 17:20 by JustRun, 229 阅读, 收藏编辑

DHL http://www.dhl.com/content/g0/en/express/tracking.shtml?brand=DHL&AWB={tracking_number} Fedex http://www.fedex.com/Tracking?action=track&tracknumbers={tracking_number} UPS http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums={tracking_number} If any value is provided for t...

Asp.net MVC中提交集合对象,实现Model绑定

2013-11-17 10:32 by JustRun, 1373 阅读, 收藏编辑

Asp.net MVC中的Model自动绑定功能,方便了我们对于request中的数据的处理, 从客户端的请求数据,自动地以Action方法参数的形式呈现。有时候我们的Action方法中想要接收数组类型的参数,如何写表单,使得Model能够自动绑定到数组参数上呢?看下面的代码,Action方法UpdateStudents就需要IEnumerable类型的参数,用来批量更新Student数据。[HttpPost] public ActionResult UpdateStudents(IEnumerable students) { //....save }上面是一个非常典型的应用场景, 如...

使用Web.Config Transformation配置灵活的配置文件

2013-11-12 08:08 by JustRun, 885 阅读, 收藏编辑

发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等。如果常常有发布的需求,就需要常常修改web.config文件,这往往是一件非常麻烦的事情。Web.Config Transformation能够在不同的发布环境下,产生不同的web.config文件,非常方便和实用。阅读目录:一、Web.Config Transformation二、一个实际的例子三、Web.Config Transformation具体语法一. Web.Config Transformation项目中有个默认的web.config, 还可以定义格式为web.

Lazy<T>在Entity Framework中的性能优化实践(附源码)

2013-10-27 18:12 by JustRun, 3751 阅读, 收藏编辑

在使用EF的过程中,导航属性的lazy load机制,能够减少对数据库的不必要的访问。只有当你使用到导航属性的时候,才会访问数据库。但是这个只是对于单个实体而言,而不适用于显示列表数据的情况。这篇文章介绍的是,使用Lazy来提高显示列表页面的效率。这里是相关的源代码 PerformanceTest.zip阅读目录:一、问题的描述二、数据表和EF实体介绍三、lazy load的性能四、使用StudentExtensionRepository来提高效率五、进一步改进,使用StudentExtensionRepository1来实现按需访问数据库六、总结一,问题的描述在使用EF的过程中,导航属性的l

菜鸟程序员之Asp.net MVC Session过期异常的处理

2013-10-19 11:14 by JustRun, 1913 阅读, 收藏编辑

小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动手也了很多代码。现在毕业了,他如愿的加入了T公司,开始了自己的程序员生涯。他信心满满,相信自己4年的学习到的东西,一定能够在工作派上用场,帮助自己很快的胜任现在的工作。阅读目录:一、Session引发的异常二、使用MVC中的Filter来对Session进行验证三、对于Ajax请求的中,Session失效的处理四、处理Session过期异常的重要性一, Session引发的异常小赵刚进公司,就参与到了一个实际的项目中了,项目使用的是Asp.net MVC。花了大概2个周的时间,小赵就完成了所有功能,提交给

MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息

2013-10-15 08:00 by JustRun, 1110 阅读, 收藏编辑

Asp.net MVC中的提供非常简单易用的数据验证解决方案. 通过System.ComponentModel.DataAnnotations提供的很多的验证规则(Required, StringLength等)。但是常常有这样的需求,我们希望能够把model的验证规则,保存到数据或者xml文件中,而不是代码里, 这样的好处是,我们可以很方便的修改验证规则和错误消息,避免需要重新发布网站。这篇文章,一起来看看是如何通过自定义ModelValidatorProvider来通过XML文件配置对于Model的验证。阅读目录:一、简单回顾内置MVC验证的使用二、分析MVC验证的内部过程三、一个例子,针

Asp.net MVC使用Model Binding解除Session, Cookie等依赖

2013-09-04 18:59 by JustRun, 1808 阅读, 收藏编辑

上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖。其实这个也可以通过Model Binding来达到同样的效果。什么是Model Binding?Model Binding的作用就是将Request请求中包含的散乱参数,根据接受请求的Action方法的参数列表,自动智能地构建这些参数的过程。问题分析常见的对于Session依赖的代码:public ActionResult Index(){ var user = Session[“UserAccuont”];//

Asp.net MVC使用Filter解除Session, Cookie等依赖

2013-08-24 11:43 by JustRun, 2458 阅读, 收藏编辑

本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应用场景。 同时针对MVC中的对于Session,Cookie等的依赖,如何使用Filter解依赖。如果大家有什么好的Filter应用方法,希望一起多交流。阅读目录:一、Filter在MVC生命周期中的位置二、Filter常见的应用场景三、Filter的执行顺序四、MVC中常见的对于Session, Cookie的依赖五、使用Filter解除依赖1. Filter在MVC生命周期中的位置下面的图中, 一个完成的MVC的生命周期分为5个步骤, 对应图例中的1~5IIS中传递请求到程序MVC根据Routing来

Entity Framework返回IEnumerable还是IQueryable?

2013-08-15 23:02 by JustRun, 2920 阅读, 收藏编辑

在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨。阅读目录:一、什么是Repository模式?二、IEnumerable还是IQueryable的区别三、实际检验IEnumerable和IQueryable的效率差别四、总结一, 什么是Repository模式?Repository是隔离在数据访问层和业务逻辑层之间的。它提供业务逻辑各种对象,使得业务逻辑代码不需要关心数据是如何存储和获取的。下图,是MVC中使用Repository模式的模型图。Controller调用Repositor

Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)

2013-08-10 00:22 by JustRun, 1875 阅读, 收藏编辑

上篇中"Entity Framework中的Identity map和Unit of Work模式", 由于EF中的Identity map和Unit of Work模式,EF体现出来如下特性:唯一性: 在一个Context的生命周期中,一个Entity只会有一个实例,任何对该实例的修改,即使这些改动没有保存到数据库中,修改都会影响到整个Context的生命周期。事务性: 所有对于Entity的修改,都会在调用SaveChange方法的时候,一起保存到数据库中,最终实现持久化。下面基于EF的上面特点,分析一下为什么需要在MVC中实现One Context Per Reque

为Asp.net MVC中的RenderSection设置默认内容

2013-08-01 23:45 by JustRun, 618 阅读, 收藏编辑

1. RenderSection的简单介绍Asp.net MVC中提供了RenderSection方法,这样就能够在Layout中定义一些区块,这些区块留给使用Layout的view来实现比如我们定义的Layout如下, 定义了一个”Footer”的section, 把这个section留给各个view去填充。 Sample Layout @RenderBody() @RenderSection("Footer") 在使用该Layout的view中,可以这样来填充“Footer” [email protected]{ ...

使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)

2013-07-28 11:42 by JustRun, 2034 阅读, 收藏编辑

在学习python开发框架pylons/pyramid的过程中,里面有个非常棒的页面性能监控功能,这样在开发过程中,你能清楚的知道当前页面的性能以及其它参数。这里介绍一下如何给Asp.net MVC和Entity Framework也添加上性能监控,让你在开发过程中随时掌握当前程序运行的信息。这里是在Autofac+MVC+EF篇的源码基础上,一步一步的介绍添加Profiler的过程。如果有兴趣了解Autofac的应用,可以看这里 IoC容器Autofac(4) - Autofact + Asp.net MVC + EF Code First(附源码)最终源代码在这里 MiniProfiler

Asp.net mvc中的Ajax处理

2013-06-18 22:54 by JustRun, 1732 阅读, 收藏编辑

在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper。这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需要注意或者容易忽略的细节问题做下总结.1. 注意ajax请求是同步还是异步的默认的Jquery中的Ajax请求是异步的,但是在一些特殊的场景下,我们需要同步的ajax请求,也可以说是阻塞式的ajax请求。比如在付款或者操作时间过长的ajax请求时,不希望用户操作时,就要用到同步ajax请求在Jquery中使用ajax方法时,将async属性设置成False, 就是同步的ajax请求了$.ajax({

Asp.net MVC - 使用PRG模式(附源码)

2013-04-18 19:03 by JustRun, 1088 阅读, 收藏编辑

阅读目录:一、 传统的Asp.net页面问题二、Asp.net MVC中也存在同样的问题三、使用PRG模式四、PRG模式在MVC上的实现一. 传统的Asp.net页面问题一个传统的Asp.net页面的请求会是这样的: HTTP GET 请求"Register.aspx" HTTP POST 请求 "Register.aspx"(点击按钮等触发服务器端事件) 数据检验失败, 重新返回到"Register.aspx" 在HTTP POST到"Register.aspx" 数据创建成功, 重新返回到"Regis

如何扩展Orchard

2013-04-12 08:37 by JustRun, 596 阅读, 收藏编辑

翻译自:http://msdn.microsoft.com/en-us/magazine/hh708754.aspx动态类型系统Content item是Orchard中的原子, 比如blog post, pages, products, widgets探索Content item原子作为开发者,我们首先会想到Content item是一个类的实例(比如blog post类), 类中包含了property, method等. 实际的Content item不是由简单类型的属性等组成的, 而是由content part组成,这是Orchard中的重要概念.一个blog post典型的由URL,

推荐博客文章

2013-04-09 13:54 by JustRun, 1250 阅读, 收藏编辑

这里是一些个人感觉本博客里比较值得一看的文章。开发和常用工具推荐清单.Net基础枚举类型转换成字符串Math.Round和四舍五入关于DateTime和String转换的容易犯得错误C#只允许运行应用程序的一个实例的正确写法.net中的对象序列化(1): 序列化是什么, 以及一个简单的例子.net中...

在Winform,Silvelight,WPF等程序中访问Asp.net MVC web api

2012-11-08 19:53 by JustRun, 444 阅读, 收藏编辑

Asp.net mvc 4中出现的web api是用来实现REST.关于什么是REST,可以看这里http://zh.wikipedia.org/zh/REST通过ajax等访问 web api非常方便,但是如何在Winform, Silverlight等访问web api呢?通过搜索,发现了已经有人做过这个东西了,就是RestSharp.http://restsharp.org/https://github.com/restsharp/RestSharpRestSharp不只是访问web api, 访问其他平台的Rest API也是一样。看看介绍的使用,无论是post数据,文件,格式化返回数

Asp.net MVC中repository和service的区别

2012-10-21 21:12 by JustRun, 797 阅读, 收藏编辑

在Asp.net MVC controller的底层,常常有提到repository和service layer, 好像都是逻辑相关的层,那么它们到底是什么区别呢?简单的说:repository就是一个管理数据持久层的,它负责数据的CRUD(Create, Read, Update, Delete)service layer是业务逻辑层,它常常需要访问repository层,但是它不关心数据是如何获取和存储的。

分析Autofac如何实现Controller的Ioc(Inversion of Control)

2012-10-19 21:33 by JustRun, 2988 阅读, 收藏编辑

Autofac是一个Ioc框架,最大的特点应该是可以不用配置文件,直接用C#代码来注册。Autofac同时也提供了对于Asp.net MVC的扩展。这里是Autofac的文档,介绍如何在MVC项目中集成使用:protected void Application_Start(){ var builder = new ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Assembly); var container = builder.Build(); DependencyResol...

在Autofac中如何获取注册组件的类型

2012-10-17 22:11 by JustRun, 243 阅读, 收藏编辑

假如这里我注册component:builder.RegisterType<DeleteOrganization>().As<IDeleteOrganization>();后面我们想获取类型,可以这样container.Resolve<IDeleteOrganization>().GetType()但是这样是先实例化了DeleteOrganization对象,然后再获取Type, 但是我们并不需要实例。如何做才能更有效率呢?合理的做法是:var registration = container.ComponentRegistry .Registrations

理解为什么要使用Ioc

2012-10-11 06:34 by JustRun, 1339 阅读, 收藏编辑

转自 http://www.cnblogs.com/shanyou/archive/2010/05/28/1746711.html较复杂的应用程序都是由多个项目组织成的,项目可以划分成程序集(Assemblies)和宿主(Hosts),也就是应用程序的入口。Assemblies 通常是常见的类库项目,包括可以重用的功能和方便测试,通常包括下面的组件:Views, Controllers 和 Models服务持久类 和 repositoriesDecoratorsReusable user controls规则库业务逻辑这些项目通常不应该直接依赖于下面的组件:IoC 容器程序集;日志记录框架 ;

Html.Partial和Html.RenderPartial, Html.Action和Html.RenderAction的区别

2012-09-28 16:14 by JustRun, 563 阅读, 收藏编辑

Html.Partial返回的是一个字符串, Html.RenderPartial会将内容写入到response中, 返回void在Razor中,下面2中写法是等价的:@Html.Partial("ViewName")@{Html.RenderPartial("ViewName"); }你可以使用 Html.Partial, 把Partial View的输出保存到变量中, 但是Html.RenderPartial不行.Html.RenderPartial会在执行的时候,直接把输出写进Response.Html.Action和Html.RenderActi

如何为Asp.net MVC web api生成Url?

2012-09-28 13:59 by JustRun, 489 阅读, 收藏编辑

为某个Action生成Url, 可以使用Url.Action方法,就能得到针对某个Action的Url.但是web API呢? 好像没有Url.Api方法的。这里如果我们的web api的route是这样设置的: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } )...

Entity Framework中的DataAnnotations

2012-09-26 00:16 by JustRun, 524 阅读, 收藏编辑

Model使用DataAnnotations定义数据库和验证using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema注意这里的验证会在web客户端和EF端同时验证。[Key] 数据库: 定义主键[Required] 数据库: 会把字段设置成not null验证: 会要求必须输入是否可以为null [Required(AllowEmptyStrings = false)] 不能为null和空字符串[MaxStringLegth]数据库: 字段长度验证: 验证是否超出

使用AppHarbor云平台免费搭建Orchard CMS

2012-09-22 22:50 by JustRun, 3244 阅读, 收藏编辑

最近在研究Asp.net MVC, 打算在云平台上部署一个MVC的开源CMS Orchard学习一下,奈何Azure现在在国内不能注册,只能转到AppHarbor云平台上。以下是我尝试的如何使用AppHarbor部署Orchard CMS.一, 注册AppHarbor云平台, 创建一个Appliation和数据库环境1. 注册一个AppHarbor账号, 网址是https://appharbor.com/2. 创建一个新的Application, 这里我取的名字是orchard3. 在Add-ons中,为这个新的Application创建一个新的Sql Server数据库,使用免费的,10M空

Asp.Net MVC开源CMS - Orchard

2012-09-19 13:45 by JustRun, 2274 阅读, 收藏编辑

最近在学习Asp.Net MVC, 一直是step by step地看官方文档。想找个成熟的MVC开发的开源系统,系统学习一下MVC, 搜索了一下,惊喜的发现了Orchard.这个是介绍 2011/01/21号发布的关于Orchard的介绍,说明Orchard还是一个非常新鲜的事物。以后会将更多的精力投入到Asp.Net MVC和Orchard中, 不断精益求精。微软近日发布的唯一一款开源产品,其自由、开源“Orchard”内容管理系统 (CMS)也正式发布了1.0版。和WebMatrix一样,Orchard的目标是帮助用户减少编码,从而吸引非技术人员的关注。 Orchard是微软“Oxite

Asp.net MVC – Razor模板语法

2012-09-07 10:58 by JustRun, 615 阅读, 收藏编辑

1. 模板基本语法@(value / 10)输出运算结果@@输出@@{ var i = 1;}代码块@foreach(var item in items){ @item.name}在foreach内部,不用标签输出文本会被当做C#代码处理,可以加上<text></text>或者直接加上@:@* *@代码块注释2. HtmlHelper常用的HtmlHelper方法@Html.Raw输出纯的html, 不转义@Html.ActionLink输出链接@Html.Partial使用其它Partial模板输出@Html.LabelFor输出表单[email protected]

Asp.net MVC – Controller

2012-09-06 15:54 by JustRun, 189 阅读, 收藏编辑

1. 在Controller中获取当前Route信息比如获取当前的controller信息,RouteData.Values["controller"]key是Route匹配的那些参数2. Action的返回值中的ActionResult种类Controller中返回的Action Result种类类型解释返回方法ContentResult返回一个字符串ContentEmptyResultNo ResponseFileContentResult FilePathResult FileStreamResult返回一个文件File HttpUnauthorizedResu...

时间: 2024-10-18 08:23:51

MVC学习的相关文章

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

MVC学习笔记索引帖

[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习笔记]4.使用Log4Net来进行错误日志的记录 [MVC学习笔记]5.使用Controller来代替Filter完成登录验证(Session校验) [MVC学习笔记]6. 使用Memcache+Cookie解决分布式系统共享登录状态 [MVC学习笔记]7.使用极验验证来制作更高逼格的验证码

ASP.NET MVC学习之控制器篇

一.前言 许久之后终于可以继续我的ASP.NET MVC连载了,之前我们全面的讲述了路由相关的知识,下面我们将开始控制器和动作的讲解. ASP.NET MVC学习之路由篇幅(1) ASP.NET MVC学习之路由篇幅(2) ASP.NET MVC学习之路由篇幅(3) 二.正文 1.IController的使用 这个接口可能很多人都没有使用过,但是我们常用的Controller类实现了这个接口,而且只要实现这个接口就可以作为一个控制器,当然很多的内部的处理就要我们自己去做了. 下面我利用ICont

Asp.Net MVC学习记录之“一个实体对象不能由多个 IEntityChangeTracker 实例引用”

原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. ? 1 2 3 4 5 var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1"

前端MVC学习总结——AngularJS验证、过滤器

前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令(directive) 3.1.支持AngularJS功能的指令 3.1.1.应用与模块(ng-app) 3.1.2.控制器(ng-Controller) 3.1.3.包含(ng-Include) 3.1.4.不绑定(ngNonBindable) 3.2.扩展表单元素的指令 3.2.1.ng-opti

ASP.NET MVC学习之过滤器篇(2)

下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成之后更改最终返回的结果,当然很多人一定不太明白这个到底可以干什么, 下面我们举一个比较实际的例子: 相信理解过网站的安全的一定知道跨站请求(CSRF具体可以自行百度,这里我就不去解释了),当然也有解决方案,那就是给页面中增加一个识别码,当页面进行POST请求时,首先判断识别码是否正确, 如果正确则继

PHP实例开发(3)PHP中MVC学习之ThinkPHP

PHP中MVC学习之ThinkPHP 1.什么是MVC MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离 MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务. 2.为什么要使用 MVC 首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序.由于模型返回的数据没有进行格式化,所以同样的构件能

[Spring MVC]学习笔记--DispatcherServlet

在上一篇我们介绍了Servlet,这一篇主要来看一下MVC中用到的DispatcherServlet(继承自HttpServlet). 1. DispatcherServlet在web.xml中被声明. <web-app> <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet&l

(转)ASP.NET MVC 学习第一天

天道酬勤0322 博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅  | 管理 随笔:10 文章:0 评论:9 引用:0 ASP.NET MVC 学习第一天 今天开始第一天学习asp.net mvc,写的不是很好,高手不要喷,希望大家能一起进步学习. 好了,开始学习 新建项目,选择mvc 4应用程序 接下来选择基本,视图引擎当然要选择Razor,如果在选择aspx那我们就没必要用mvc喽 在这里我们简单说一下,项目模板如果选择空,这就需要我们自己进行导入很多文件,而选择基本vs会