代码改变世界

随笔分类 -  MVC

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

2012-10-19 21:33 by JustRun, 7330 阅读, 收藏, 编辑
摘要: 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, 1177 阅读, 收藏, 编辑
摘要: 假如这里我注册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, 5648 阅读, 收藏, 编辑
摘要: 转自 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, 1000 阅读, 收藏, 编辑
摘要: 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, 1267 阅读, 收藏, 编辑
摘要: 为某个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, 1308 阅读, 收藏, 编辑
摘要: 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, 5409 阅读, 收藏, 编辑
摘要: 最近在研究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, 3911 阅读, 收藏, 编辑
摘要: 最近在学习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, 1826 阅读, 收藏, 编辑
摘要: 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输出表单label@Html.Editor 阅读全文

Asp.net MVC – Controller

2012-09-06 15:54 by JustRun, 595 阅读, 收藏, 编辑
摘要: 1. 在Controller中获取当前Route信息比如获取当前的controller信息,RouteData.Values["controller"]key是Route匹配的那些参数2. Action的返回值中的ActionResult种类Controller中返回的Action Result种类类型解释返回方法ContentResult返回一个字符串ContentEmptyResultNo ResponseFileContentResult FilePathResult FileStreamResult返回一个文件File HttpUnauthorizedResu... 阅读全文