控制器(Controllers)    在MVC架构模式的上下文里,控制器响应用户的输入(比如,用户点击“保存”按钮),并协调模型.视图以及(经常)数据访问层.在ASP.NET MVC程序里,控制器就是包含被路由框架处理请求时调用的方法的类.…
项目模板 1.空模板      空模板用于创建ASP.NETMVC 4网站的架构,包含基本的文件夹结构,以及需要引用的asp.netmvc程序集,也包含可能要使用的javaScript 库.模板同样包含默认的视图布局,以及标准配置代码的Global.asax文件.绝大部分asp.net mvc应用程序都会用到家些代码.2.基本模板      基本模板按照asp.net mvc4的规则创建了文件结构,包含asp.netmvc程序集的引用.这些模板表明了创建asp.netmvc4  项目需要的最低标…
视图(Views)    在ASP.NET MVC框架中,想要返回给用户HTML的控制器操作,就要返回ActionResult类型的ViewResult实例,ActionResult知道如何渲染应答结果.当渲染视图时,ASP.NET MVC将会使用控制器提供的名字.以HomeController的Index操作为例,如下:         public ActionResult Index()        {        ViewBag.Message="Your app descripti…
Razor ,你好!       Razor 是一种把代码和内容进行平滑集成的语法.尽管它引入了一些新的符号和关键字,但是Razor并不是一种新的语法.相反,Razor允许用户使用已知的语言来编写代码,比如C#,VB.NET    Razor的学习门槛很低,因为它允许使用已经具备的技能,而不要求学习一种新的语言.因此如果知道如何编写HTML或者使用C#编写代码,就可以轻易编写下面类似的代码:<div>this page rendered at @DateTime.Now</div>…
一.概念 1.路由是计算机网络中的一个技术概念,表示把数据包从一个网段转发至另一网段.ASP.NET中的路由系统作用类似,其作用是把请求Url映射到相应的"资源"上,资源可以是一段代码或具体的Web页面.路由系统提供了一种简单抽象机制,让我们利用Url更加精简方式表示资源,而无关资源具体的实现或表示. 2. 路由系统包含一系列重要的概念,现介绍如下: 路由规则(RouteBase): 表示其中具体的一条路由条件,如果满足该路由条件,则转发至该路由处理. 路由规则由路由名称,路由默认值,…
做了8年的asp.net webform,用过MVVM但还没用过MVC , 虽然项目不用MVC,但是还是想了解一下,今天第二天学习,以下是学习心得. VS2012默认带有asp.net mvc3和asp.net mvc4项目模板. 基本URL示例剖析 URL:http://localhost/Account/Login 其中http://localhost/为网站根目录,Account为Controller名称,Login为Action名称. 据此可知 . 网站中Controllers目录下应有…
  参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view 一,Controller 中的ActionResult方法会用一个View Template生成HTML页面反馈到浏览器中: 1,修改Index方法如下 public ActionResult Index() { return View();} 2,在Index 方法中右键,添加View视图,Views视图下的Hel…
1 简介:微软在很早就看到了基于windows系统的web开发平台的需求,这时便开始提出自己的解决方案即微软的第一个基于web开发的平台ASP.再后来随着需求和性能的要求再2002年推出第二个解决方案ASP.NET来满足.但是技术不断地在改进很快又有了新的需求,不再基于页面在2008年推出了asp.net mvc的开发模式(模型-视图-控制器),看来五六年技术会得到一次飞跃,当然这只是猜测而已. mvc模式把应用程序分成三层,而且这三层之间的关系是松耦合即相互隔离,互不影响,而这种情况确实最好的…
之前在学习Artech的<ASP.NET MVC4框架揭秘>一书,学习过程中画了ASP.NET MVC4框架的草图,方便记忆.…
3.控制器Controller 3.1 控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现. 控制器负责解析用户的请求并将其转换为一个模型. 在Spring MVC中一个控制器类可以包含多个方法 在Spring MVC中,对于Controller的配置方式有很多种 实现Controller接口 Controller是一个接口,在org.springframework.web.servlet.mvc包下,接口中只有一个方法: //实现该接口的类获得…
一. 高层相关类说明 当路由系统根据请求Url收集路由信息后,下一步就要将路由信息传给Controller激活系统,Controller激活系统负责实现了IController接口的Controller类实例化.它的相关类族体系如下图所示: MvcHandler实现了IHttpHandler, IHttpAsyncHandler,IRequiresSessionState三个接口,其中IHttpHandler, IHttpAsyncHandler分别是HttpHandler同步与异步的实现,IR…
一.路由实现 路由系统实际是一个实现了ASP.NET IHttpModule接口的模块,通过注册HttpApplication的PostResolveRequestCache 事件对Url路由处理.总体框架代码如下所示: foreach(路由规则 in 路由表) { if (当前路由规则匹配请求Url) { 1.获取路由处理IRouteHandler 2.从RouteHandler中获取HttpHandler 处理请求 } } 路由系统实现分为两个部分,一个是ASP.NET标准的模块,在Syst…
一. 为什么要进行扩展 在前面的分析中,我们知道默认的Controller激活系统只能实例化无参构造函数的Controller类型,但在某些情况一下,我们希望某些服务的实例能够自动注入到Controller实例中,从而达到服务接口和实现的隔离,减小重复的代码,提高系统的可维护性和灵活性.也就是说我们希望在Controller激活中引入依赖注入.关于依赖注入的概念这里就不解释了,请自行查询相关的资料.基于.net依赖注入框架也有很多,下面的例子主要使用微软企业库的Unity. 在上一节的分析中,我…
第一当目标controller的名称通过URL路由被解析出来后,asp.net mvc利用 ControllerBuilder 注册 ControllerFactory ,根据名称实现对目标controller的激活.释放.获取控制会话行为的SessionStateBehavior枚举.(p92 p106) 第二controller类型缓存通过本地MVCControllerTypeCache.xml文件保存在asp.net临时目录下面(p105) 第三IoC应用到controller,极大降低c…
1,turorial ,根据链接教程新建一个MVC项目 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4 First Page: 2,M-V-C: Models: 存放数据模型(Model Data),验证接收的数据(Validation Logic) Views:  用户看到的HTML页面 (dynamically genetate HTML Page) C…
[TOC] 1. Action 1.1 新建项目 新建项目->Web->Asp.net Web应用程序,选择MVC,选择添加测试. 在解决方案上右键,选择"管理NuGet程序包",在更新页更新全部程序包. 1.2 控制器 控制器在Controllers文件夹内,命名规则是"名称+Controller" 2. 路由 2.1 路由规则 {controller}/{action}/{id} 其中{id}是可选的. 2.2 路由定义RouteConfig.cs…
本文参考:http://www.cnblogs.com/willick/p/3331521.html 1.继承IController接口,示例代码将当前请求的Controller和Action打印到浏览器: public class BasicController : IController { public void Execute(RequestContext requestContext) { string controller = (string)requestContext.Route…
一.MVC简介…
在抛弃了对.NET 3的支持之后, ASP.NET MVC 4 彻底拥抱了Task类库, 你不需要再蛋疼的给每个Action写两个方法, 也无需傻傻的手动对异步Action计数器增减了(AsyncManager.OutstandingOperations.Increment()), 现在的你只需拿起手指, 轻轻敲几下, 其他的事情都由系统帮你完成 public class PortalController : AsyncController { public Task<ViewResult>…
/** * ThinkPHP version 3.1.3 * 部署方式:应用部署 * 文内的 http://localhost/ 由实际主机地址代替 */ 入口文件 index.php: <?php define('THINK_PATH','./ThinkPHP/'); //定义项目名称和路径 define('APP_NAME','Myapp'); define('APP_PATH','./home/'); define('APP_DEBUG',true); //加载框架入口文件 require…
断断续续使用ASP.NET MVC框架也有一年多了,也算积累了一些经验,唉,一直想写一些笔记好好总结一下,人太懒不想动笔,今天终于决定开始.希望自己能坚持下去. 这篇文章大体介绍ASP.NET MVC的基本架构,帮助你快速理解该框架的工作原理.关于MVC模式的介绍已经是汗牛充栋了,这里就不再赘述了.ASP.NET MVC 是基于原有ASP.NET运行时,ASP.NET运行时采用通道过滤器模式,可以高度的扩展.如下图所示: 图中Module相当于IHttpModule,Handler类似于IHtt…
今天来简单说一下Razor视图引擎语法相关的和视图类. 添加一个MvcTest项目,继续添加一个Home控制器,完成index的视图添加.我们就在index这里分析razor视图引擎.下面是home控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcTest.Controllers { public…
本文参考:http://www.cnblogs.com/willick/p/3331513.html 1.MVC一个请求的发出至action返回结果的流程图如下: 重点是Controller Factory 和 Action Invoker.Controller Factory的作用是创建为请求提供服务的Controller实例:Action Invoker的作用是寻找并调用Action方法. 2.自定义Controller Factory需要实现IControllerFactory接口(实际开…
先来看一个例子 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <title>angularJS</title> <!--angular引用--> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.…
第一步找到MVC 4.0 CodeTemplates 一般路径在:C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 4\CodeTemplates\AddController 备注:使用替换方法,没有管理权限无法修改模版 打开Controller.tt 添加版本注视信息,比如 修改后保存到桌面使用替换文件方法,修改模版 最后打开Visual Studio 201…
那么现在我们已经大概从本质上了解了ef 巴拉巴拉说了一大堆之后 总算要进入ef的正题了 总在口头说也太不行了是吧~ 没错,现在要用ef进行一些实际的操作 做什么呢? 就做一个入门级的增删改查操作吧 废话不说,开搞~ 首先 操作的数据库还是之前建立的例子 关系图: 已经是我们的老朋友啦 简单又好用~ 还是建立一个控制台应用程序 根据数据库生成ADO.NET实体数据模型 准备工作做完之后 现在可以放开那个鼠标 放手敲代码吧~ 使用EF最最开始要做什么事情? 准备一个EF上下文对象 因为EF的所有操作…
asp.net MVC 回顾 Html.ActionLink http://www.cnblogs.com/jiagoushi/p/3905828.html 选择基本模板,视图引擎 选择Razor ASP.NET MVC的请求过程…
清楚问题所在: 先开个头,当我们对A进行单元测试时,可能会发现A的实现必须要依赖B.这时,我们在写单元测试时,就必须先创建B的实例,然后把B传给A再建立A的实例进行测试. 这样就会出现一些问题: 1.我们的单元测试会变得复杂而且脆弱.复杂是因为我们必须要花费精力去弄清楚B的逻辑.脆弱是因为如果B的逻辑更改了,我们对A的单元测试也可能会面临失败. 2.更严重的是,当我们测试失败时,我们无法很快定位到究竟是A除了问题还是B出了问题. 所以我们使用Moq这种技术来Mock “伪造” 一个B的实例,这样…
http://www.cnblogs.com/yaopengfei/p/7910763.html…
ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一) 菜单和模块是在同一个表中,采用的是树形结构,模块菜单表结构如下代码: USE [Permission] GO /****** Object: Table [dbo].[Permission_Modules] Script Date: 11/21/2013 17:06:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SE…