Asp.Net Mvc 学习笔记总结(自学第一天)

今天是第一天学习,主要总结了下面两个问题。由于是自学,总结的可能会有纰漏希望大家积极指正(微笑)。

1、什么是Mvc?为什么要用Mvc?

2、如何使用Mvc快速实现入门级别的开发?

  这里先说一下什么是Mvc:首先Mvc是一种架构模式;第二Mvc不等同于三层;第三Asp.net Mvc是延用了Mvc思想做出来的一款基于三层中的UI层的一款产品;那么Mvc架构模式是什么意思呢?当然这个架构模式20世纪80年代就已经提出来了。当时的提出的时候并没有标准的输入输出设备,只是为了单纯的区分开来输入、输出和逻辑处理。就把开发分成了3个部分,可以让开发人员专注与逻辑处理方面。下面上图是传智播客赵小虎上课时讲的

    M---->Mode(模型)l

  V----->View(视图)

  C----->Controller(控制器)

  随着硬件的发展,有了标准的输入输出设备之后,左边的这种架构模型已经不再使用,但是很多公司却延用了这种模式所提出来的的思想——分工开发,这样可以更好的调度分配开发工作。这种思想在现在开发过程中的体现就是三层开发——UI层、业务逻辑层、数据访问层(三层之间需要参数传递时就需要用到模型)。大家对三层应该都比较熟悉就不再赘述。Asp.Net Mvc其实就是对三层当中的UI层进行进一步的分离做出来的一个框架,即是一个UI层的框架。把UI层分为输入、处理、渲染返回(里面牵涉到的数据放到Model里)。请求过来接收输入的这个东西就叫Controller(控制器),控制器里边有一些实际执行相应处理的东西叫Action(行为),行为的本质就是方法,这些行为就会调用底层的处理,处理完之后它再结合一些模型数据的封装,最终将这些数据交给View(视图),最终由View完成渲染展示返回给浏览器。Razor渲染引擎,它的强大之处就在于可以直接通过显卡调度完成渲染。

  注意:上面讲到的Model和模型层中的模型不是一个意思,但是实际开发过程中我们有时候会直接调用三层中的模型层,而不自己写Model,但是这个Model是有意义的,很多时候我们会做强类型的页面,这个时候我们自己写的Model就有意义了。这里的模型层中的模型对应的是数据库中的一些表,比如顾客表和订单表,要在页面显示顾客名称和订单名称时就没有模型既包含顾客又包含订单,这个时候我们就需要在Model中重新定义一个类既包含顾客又包含订单,简单的说Mvc中的Model是展示Model,而三层中的模型是数据Model和数据库中的表一一对应。萝莉啰嗦的说了这么多,Mvc就介绍到这里吧。下面进行第二个问题。至于为什么用Mvc就非常显而易见了,实现前台和后台最大限度的解耦。也方便开发人员的任务分配。

  创建第一个Mvc项目

  由于方法比较简单,这里就不上图了,只做简单文字介绍

  (1)选择File|New Project选项

  (2)在New Project对话框左栏的Installed|Templates部分,选择C#|Web模板列表,右边选择Asp.Net Mvc4 Web Application,给程序命名为MvcMusicStore(官网示例代码)然后单击Ok按钮。

  (3)接下来就会有一个Select a template 对话框让你选择一个项目模板。

    Internet Application模板:包含Asp.NET MVC Web应用程序的启动方式,程序创建之后便可立即运行,并能看到一些页面。还包含一些针对ASP.NET Membership系统的基本账户管理功能。

             Intranet Application模板:改模板是作为ASP.NET MVC 3工具更新的一部分添加的,它与Internet Application模板相似,但是它的账户管理功能不是针对Asp.net Membership系统而是针对Windows账户

           Basic模板:该模板非常小,其中除了包含基本的文件夹、CSS和MVC应用程序基础结构之外,别无其他。如果运行使用Empty模板创建的应用程序,将会出现错误提示——您需要设置启动项。既然这样为什么还要用Empty模板呢?其实Basic模板市委具有Asp.net MVC开发经验的人员设计的。它可以按照他们的想法精确的设置和配置程序。

  Empty模板:Basic模板过去称为Empty模板,但是开发人员抱怨Empty模板不够空。在MVC4中,先钱的Empty模板更名为Basic,新的Empty模板很空,里面只有必须的程序集和基本的目录结构。

  Mobile Application模板:该模板使用jQuery Mobile进行预配置,这样就启动创建一个只能仅移动访问的网站。该模板中包括移动视觉主题、触摸优化的UI、还支持Ajax。

  Web API模板:ASP.NET API是一个创建HTTP服务的框架,该模板和Intern Application模板相似,但他简化为Web API开发。没有用户账户管理功能。

对于初学者,建议选用Internet Application模板 视图引擎选择Razor引擎,勾选选择一个单元测试前面的复选框。其它的可以默认,点击OK

  到此,就已经创建好了一个MVC项目

  (5)下面单击Controller文件夹单击右键添加控制器(控制器其实就是一个类,区分类和控制器的方法就是看他是否继承System.MVC.Controller)如图所示,单击确定。

  (6)然后给控制器里的行为添加视图,如下图所示,选中Index行为,单击右键添加视图

默认情况下视图名称和行为名称相同,这里我们先不选视图和模板,如图所示点击添加,就添加了一个可以放html页面的一个.cshtml文件。通过控制器/行为的方式 来访问页面,也可以自己配置视图页面。自己配置页面的话可以给行为加参数如下图所示,再返回的View中加入想要返回的视图名称,在浏览器中输入:端口号/控制器名/Index1就可以访问Index1这个视图页面

给Index1添加视图的方式一样这里就不再赘述。视图里可以写你想显示的东西

简单的代码介绍就介绍到这里,至于页面的访问方式是由路由决定的,mvc3路由的配置在global文件里配置,MVC4放在了一个路由配置类(RouteConfig),在Global文件里完成调用,后边详细介绍。

时间: 2024-10-27 07:38:37

Asp.Net Mvc 学习笔记总结(自学第一天)的相关文章

ASP.NET MVC 学习笔记(1)

从头开始系统地学习ASP.NET MVC

ASP.NET MVC 学习笔记-2.Razor语法

1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“:”结尾.代码块中定义的变量可能会被同一个域中的其他块使用.比如,定义在视图顶部的变量可以被同一视图中的代码块和代码段访问. 3.         布局 Razor通过layouts保持网页外观布局的一致性.布局模板包含基本的标签,并可以指定渲染视图内容的位置.比如 基本布局文件(_Layout.cshtml) <!DOCTYPE Html> <ht

【转】ASP.NET MVC学习笔记-Controller的ActionResult

1. 返回ViewResult public ActionResult Index()   {       ViewData["Message"] = "Welcome to asp.net MVC!";       return View();   }  public ActionResult Index(){    ViewData["Message"] = "Welcome to ASP.NET MVC!";    re

ASP.NET MVC 学习笔记-2.Controller

MVC中,Controller用来响应对ASP.NET MVC网站的请求,每个浏览器请求都会被映射到特定的Controller实例上,Controller针对请求可能会进行以下处理:向浏览器返回特定的视图或者对请求进行重定向到别的Controller. Controller实质是一个类,都派生于Controller(System.Web.Mvc.Controller基类). Controller上公共的方法称为ControllerAction,ControllerAction不能重载且不能为静态

【ASP.NET MVC 学习笔记】- 14 HtmlHlper的扩展方法

本文参考:http://www.cnblogs.com/willick/p/3428413.html 1.在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的 HtmlHelper,习惯上我们把 HtmlHelper 中的(扩展)方法叫 HtmlHelper Method,简称为Helper Method.它的作用是把生成 Html代码的任务交给 MVC,以便 MVC 能完成很多自动处理的工作.我们在 View 中使用的 Html.ActionLink.H

【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)

本文参考: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

【ASP.NET MVC 学习笔记】- 13 Child Action

本文参考:http://www.cnblogs.com/willick/p/3410855.html 1.Child action 和 Patial view 类似,也是在应用程序的不同地方可以重复利用相同的子内容.不同的是,它是通过调用 controller 中的 action 方法来呈现子内容的,并且一般包含了业务的处理.任何 action 都可以作为子 action .示例: //1.ChildActionOnly 特性保证了该 action 只能作为子action被调用(不是必须的) [

【ASP.NET MVC 学习笔记】- 04 依赖注入(DI)

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种"需要",就称为依赖注入(Dependency Injection). 2.依赖注入和和所谓的控制反转(Inversion of Control )是一个意思. 3.依赖注入是通过接口实现松耦合的设计模式,是解耦的重要手段. 4.依赖注入分为两步:移除对组件的依赖:通过类的构造器(或setter访问器)

【ASP.NET MVC 学习笔记】- 05 依赖注入工具Ninject

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.Ninject是一款轻量级的DI工具,可通过VS的插件NuGet将其引用到项目中. 2.使用Ninject的步骤: 创建一个Ninject的内核对象 //创建Ninject内核实例 IKernel ninjectKernel = new StandardKernel(); 把公开接口绑定到一个实现了该接口的类上 //绑定接口到实现了该接口的类.这种绑定告诉Ninject,当接收到一个请求IV