mvc3.0入门经典
最全最经典spring_mvc教程
spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。
2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。
Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。
并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。
一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。
org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。
后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。
ASP.MVC 3.0 快速入门
•MVC3•快速入门-第一节•概述•(2011-02-23 20:57:18)转载标签:web 应用程序分类:MVC31.1 本教程的学习内容在本教程中,你将学会如下内容:如何创建一个 MVC 的工程。
如何创建 MVC 的控制器(controller)与视图(view)。
如何使用Entity Framework code-first 范例来创建一个新的数据库。
如何获取和显示数据。
如何编辑数据并且进行数据的有效性验证。
1.2 创建工程如果要创建一个 MVC3 的工程时,首先运行Visual Web Developer 2010 Express(本教程中简称“Visual Web Developer”),并且在起始页(start page)中选择“新建项目”。
Visual Web Developer 是一个集成开发环境,你可以使用它来进行各种应用程序的开发。
在Visual Web Developer 的菜单的下面有一个工具条,可以直接点击工具条中的各个工具按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击“文件”菜单中的“新建项目”菜单项。
图1-1 Visual Web Developer 2010 Express 中的起始页1.3 创建你的第一个应用程序你可以使用Visual Basic 或Visual C#作为开发语言来创建应用程序。
在本教程中,选择C#来作为开发语言。
点击“新建项目”菜单项后,在打开的“新建项目”对话框中,双击左边的“Visual C#”使其成为展开状态,然后点击“Web”,点击右边的“ MVC 3 Web 应用程序”,然后在下方的名称文本框中填入应用程序的名称,在本教程中命名为“MvcMovie”, 然后点击确定按钮。
图1-2 在新建项目对话框中选择 MVC3 应用程序并为应用程序命名在接下来打开的“新 MVC 3 项目”对话框中,点击选中“Internet 应用程序”,在“视图引擎”下拉框中保持默认的“Razor”选项不作修改(Razor 视图是 MVC3 种新增的一种十分重要的视图类型,使用它可以使得Web 应用程序的开发变得更加方便快捷,在后文中将对此进行详细介绍)。
Spring MVC3注解学习之简单入门范例
Spring MVC3注解学习之简单入门范例文章均为原创,转载请注明出处。
本文地址:/post/430.html之前做Web应用都是在用Struts2,觉得功能强大,效率也能提升很多,所以一直都很喜欢Struts。
虽然也曾经在接手前人遗留的项目时遭遇过Spring MVC,不过不知道是前人用的不好,还是自己水平差,亦或者是Spring MVC(那个时候还是2)本身的问题,让Spring MVC给自己留下了很不好的印象:配置文件繁琐、功能一般甚至简陋、不能够在开发效率上与Struts2媲美等等问题,致使自己一直以来都是带着偏见看待Spring MVC的,也因此一直都没有再去尝试过。
最近是一次偶然的机会,再次正面遭遇Spring MVC,不过这次它改头换面,由2升级到3了,看到别人基于Spring MVC注解方式写出来的简洁流畅的代码后,惊叹于Spring MVC3的注解驱动能力之强大,代码之简洁,觉得自己以前的偏见简直就是愚昧至极,不由地暗自对Spring MVC有了好感,打算实实在在尝试一把。
不过自己之前对Spring MVC确实不熟,加之这次升级的内容有点多,所以我找来了一份很好的入门文档《Spring3_MVC注解教程》作为自己的领路人。
这份PPT做的很好,本文也是在此基础上有感而发的,在此感谢作者陈雄华先生的辛勤劳动和无私奉献!本文所示代码均基于最新版SpringFrameword3.2.3,请知悉。
Spring MVC框架简介∙支持REST风格的URL∙添加更多注解,可完全注解驱动∙引入HTTP输入输出转换器(HttpMessageConverter)∙和数据转换、格式化、验证框架无缝集成∙对静态资源处理提供特殊支持∙更加灵活的控制器方法签名,可完全独立于Servlet API Spring MVC框架结构框架的实现者如何在应用中使用Spring-MVC?1.在应用中添加Spring框架支持;2.在web.xml中配置Spring-MVC的请求转发器(前端控制器)3.编写Spring-MVC的配置文件4.将任意JavaBean通过注解配置成Controller(控制器)并注解其中的方法5.完成步骤简单明了,接下来我们一步一步详细说明:在应用中加入Spring支持:因为Spring-MVC是属于SpringFramework的一部分,因此要在应用中使用Spring-MVC,就必须以引入Spring基础框架为前提,另外还包括beans、context、aop、web组件,将上述组件的jar及其依赖添加到buildpath下,就算完成了为应用添加Spring框架支持的工作,然后在web.xml中配置Spring的监听器,代码如下:另外,因为是在web应用中使用Spring,因此建议配置一个名为org.springframework.web.util.IntrospectorCleanupListener的监听器来处理资源回收的工作:再配置一个编码过滤器在web.xml中配置Spring-MVC的请求转发器(前端控制器)在应用中使用Spring-MVC比较简单,除了需要引入相关依赖库外,还需要在web.xml配置Spring-MVC的请求转发器,代码如下:编写Spring-MVC的配置文件在上述代码中,我们告知Spring-MVC的请求转发器我们的mvc配置在classpath:mvc-config.xml中,因此我们需要在该文件中正确描述我们的mvc配置信息,配置代码如下:将任意JavaBean通过注解配置成Controller(控制器)并注解其中的方法本文主要示范如何使用注解为应用添加Spring-MVC支持,因此本文中的所有MVC映射配置都采用注解方式,范例Controller如下所示:为了是上面的Controller能够正常使用,我们还需要在WebRoot下创建Controller 中使用的逻辑视图对应的视图文件,以上例中create为例,我们在WEB-INF/jsp/目录下新建jsp文件,内容如下:完成上述四个步骤后,将工程部署到任意web容器(本文采用tomcat6.0),然后启动,即可在浏览器中浏览映射出来的地址,如果需要在记录详细的Spring调试信息,则可以通过配置log4j来实现(这里多说一句,Spring的调试信息真的很详细很丰富,通过分析日志,将有助于我们快速理解和掌握Spring-MVC的工作原理)。
Spring3.0 MVC 中文教程
Spring3 MVC - 3到Spring MVC框架简介Spring3 MVC框架简介Spring MVC是Spring的框架的Web组件。
它提供了丰富的功能,为建设强大的Web应用程序。
Spring MVC框架的架构,并在这样的高度可配置的方式,每一块的逻辑和功能设计。
此外Spring可以毫不费力地与其他流行的Web框架,如Struts,WebWork的,的Java Server Faces和Tapestry集成。
这意味着,你甚至可以告诉Spring使用Web框架中的任何一个。
比Spring更不紧耦合的servlet或JSP 向客户端呈现视图。
喜欢速度与其他视图技术集成,Freemarker的,Excel或PDF现在也有可能。
Spring3.0 MVC系列∙第1部分:到Spring 3.0 MVC框架简介∙第2部分:在Spring 3.0 MVC创建Hello World应用程序∙第3部分:在Spring 3.0 MVC的形式处理∙第4部分:Spring3 MVC的Tiles Support与Eclipse中的例子插件教程∙第5部分:Spring3 MVC的国际化及本地化教程与范例在Eclipse∙第6部分:Spring3 MVC示例教程Spring主题∙第7部分:创建Spring3 MVC Hibernate 3的示例在Eclipse中使用Maven的在Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。
Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。
因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。
相反,它往往是最好直接绑定到业务对象。
请求处理生命周期Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。
MVC 3.0 实例之表格中数据的筛选 (17)
我要学 MVC 3.0(十七):MVC 3.0 实例之表格中数据的筛选概述通过上节的学习,我们知道如何在MVC 3.0应用程序中给简单表格加入排序和分页功能,但是作为开发人员,这些还是不能完美的展现我们的表格的优越性。
有时候我们还需要对数据进行筛选处理,然后使用表格进行显示。
那么在MVC 3.0中做一个筛选功能又怎么做呢?这节我们就使用MVC 3.0来筛选数据然后使用表格显示筛选结果。
问题分析对于我们的数据集来说,我们要求可以通过输入程序编号、选择成员家族(狼和羊)或者通过其他一些标识型字段来如:婚姻状态等方式来筛选数据。
这样一来使用的参数就显而易见了:①Em ployeeNO查询编号:可以通过输入编号来筛选数据。
②Departm entID家族编号:可以通过选择家族的列表来筛选数据。
③IsMarital婚姻状态:可以通过选择是否结婚来筛选数据。
修改辅助类修改Em ployeeGridModel辅助类加入一下代码.....................................///<summary>///查询条件:查询编号///</summary>public string EmployeeNO { get; set; }///<summary>///查询条件:是否婚配///</summary>public bool IsMarital { get; set; }///<summary>///查询条件:种族编号///用于绑定DepartmentList///</summary>public int?DepartmentID { get; set; }///<summary>///绑定数据库中的种族集合///</summary>public IEnumerable<SelectListItem>DepartmentList { get; set; }这些属性值,只是作为页面传递和绑定使用的。
MVC 3.0
MVC3 快速入门-第一节概述(2011-02-23 20:57:18)转载分类:MVC3标签:web应用程序1.1本教程的学习内容在本教程中,你将学会如下内容:∙如何创建一个 MVC的工程。
∙如何创建 MVC的控制器(controller)与视图(view)。
∙如何使用Entity Framework code-first 范例来创建一个新的数据库。
∙如何获取和显示数据。
∙如何编辑数据并且进行数据的有效性验证。
1.2创建工程如果要创建一个 MVC3的工程时,首先运行Visual Web Developer 2010 Express (本教程中简称“Visual Web Developer”),并且在起始页(start page)中选择“新建项目”。
Visual Web Developer是一个集成开发环境,你可以使用它来进行各种应用程序的开发。
在Visual Web Developer的菜单的下面有一个工具条,可以直接点击工具条中的各个工具按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击“文件”菜单中的“新建项目”菜单项。
图1-1 Visual Web Developer 2010 Express中的起始页1.3创建你的第一个应用程序你可以使用Visual Basic 或Visual C#作为开发语言来创建应用程序。
在本教程中,选择C#来作为开发语言。
点击“新建项目”菜单项后,在打开的“新建项目”对话框中,双击左边的“Visual C#”使其成为展开状态,然后点击“Web”,点击右边的“ MVC 3 Web 应用程序”,然后在下方的名称文本框中填入应用程序的名称,在本教程中命名为“MvcMovie”,然后点击确定按钮。
图1-2在新建项目对话框中选择 MVC3应用程序并为应用程序命名在接下来打开的“新 MVC 3 项目”对话框中,点击选中“Internet 应用程序”,在“视图引擎”下拉框中保持默认的“Razor”选项不作修改(Razor视图是 MVC3种新增的一种十分重要的视图类型,使用它可以使得Web应用程序的开发变得更加方便快捷,在后文中将对此进行详细介绍)。
mvc经典教程
MVC 入门--1、简介什么是MVC模式MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。
它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。
那么MVC模式和我们熟悉的WebForm模式有什么不同呢?他的各个部分又是怎样分工的呢?我们先来看一下普通的WebForm模式下,我们请求一个例如/blog/index.aspx的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.CS文件)进行逻辑处理,其中或许也包括到数据库去取出数据(其中的经过怎样的BLL到DAL这里就不谈了),然后再由index.aspx页面来呈现给用户。
简单的示意图如下所示:也就是一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其他),然后由该文件来处理这个请求并返回结果给客户端。
但是,对于MVC模式,这是怎样的一个过程呢?我们先来建一个 MVC的项目吧。
VS2008默认是没有 MV C的项目模板的,首先我们需要到/downloads/details.as px?FamilyId=A24D1E00-CD35-4F66-BAA0-2362BDDE0766&displaylang=en去下载最新的 MVC的安装程序,目前最新版本的Microsoft MVC Beta(10/15/2008)。
下载安装完后,我们可以在新建项目那里找到 MVC的项目:注:如果你的是中文版的VS,安装完后可能会出现找不到这个模板的现象,你可以参考在中文版VS 08中安装MVC这篇文章设置一下。
建立一个 MVC项目后,默认的项目大概如下图:我们可以看到项目中有几个文件夹的命名和MVC(Model-View-Controller,模型—视图—控制器模式)是对应的。
Spring-mvc入门
HttpServletResponse response) } } throws Exception { ModelAndView mav = new ModelAndView("hello.jsp"); mav.addObject("message", "Hello World!"); return mav;
简要说明 :DispatcherServlet 就是一个 Servlet ,也是对请求进行转发的核心 Servlet 。 在 这 里 即 所 有 .do 的 请 求 将 首 先 被 DispatcherServlet 处 理 , 而 DispatcherServlet 它要作的工作就是对请求进行分发(也即是说把请求转发给具体 的 Controller )。可以简单地认为,它就是一个总控处理器,但事实上它除了具备总控处理理 器对请求进行分发的能力外, 还与 spring 的 IOC 容器完全集成在一起, 从而可以更好地使 用 spring 的其它功能。在这里还需留意 < servlet-name > spmvc ,下面步骤三会用到。 步骤三、 建立 spmvc-servlet.xml 文件, 它的命名规则:servlet-name-servlet.xml 。 它的主要代码如下: Xml 代码
xml version="1.0" encoding="UTF-8" ?> > <beans> <bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" > <property name="mappings" > <props> <prop key="/hello.do">helloControlprop> props>
MVC实例入门(经典推荐)
MVC实例入门初次学习 MVC,因此简单的记录一下自己的学习过程和经历,以便后面学习参考,同时也为后来者做出自己的一点点贡献。
第一步:创建一个新的MVC4项目。
打开VS2012,在“文件”菜单下选择“新建”下拉菜单下的“项目”,在弹出的“新建项目”对话框中选择[Web]选项卡,选择[ MVC 4 Web 应用程序],在名称里输入:MyFirstMvcApplication,点击确定,即完成项目的新建。
在稍后弹出的“选择模板”中选择【基本】,然后点击确定,即完成一个MVC项目的创建。
如下图所示:默认情况下的项目结构如图所示:创建完成后,我们可以发现,新建项目的同时创建了一个与之同名的解决方案。
MVC默认情况下,在新建项目的同时创建一个解决方案。
开发者可以在解决方案中任意添加项目。
新建完成时,我们可以看到Controllers文件夹、Models文件夹下都是空的,什么也没有;Views文件夹下默认有个Shared文件夹。
MVC文件夹介绍可以参看《 MVC –经典入门教程(推荐阅读)》。
备注:所有MVC 应用程序中的文件夹名称都是相等的。
MVC 框架基于默认的命名。
控制器位于Controllers 文件夹,视图位于Views 文件夹,模型位于Models 文件夹。
您不必在应用程序代码中使用文件夹名称。
标准化的命名减少了代码量,同时有利于开发者对MVC 项目的理解。
下面是对每个文件夹内容的简要描述:1.App_Data 文件夹App_Data 文件夹用于存储应用程序数据。
我们将在本教程稍后的章节向App_Data 文件夹添加SQL 数据库。
2.Content 文件夹Content 文件夹用于静态文件,比如样式表(CSS 文件)、图表和图像。
Visual Web Developer 会自动向Content 文件夹添加一个 themes 文件夹。
这个themes 文件夹存放jQuery 样式和图片。
在这个项目中,您可以删除这个主题文件夹。
spring3.0MVC注解(附实例)
0.提示1) Spring发行版本附带了PetClinic 示例,它是一个在简单的表单处理的上下文中,利用了本节中说明的注解支持的Web应用程序。
可以在“samples/petclinic ”目录中找到PetClinic 应用程序。
2) 另外一个建立在基于注解的Web MVC上的示例应用程序,请见imagedb 。
这个示例集中在无状态的multi-action控制器,包括多段文件上传的处理。
可以在“samples/imagedb ”目录找到imagedb 应用程序。
1.建立dispatcher实现注解支持只有对应的HandlerMapping(为了实现类型级别的注解)和/ 或HandlerAdapter(为了实现方法级别的注解)出现在 dispatcher中时, @RequestMapping 才会被处理。
这在DispatcherServlet 和DispatcherPortlet 中都是缺省的行为。
然而,如果是在定义自己的HandlerMappings或HandlerAdapters,就需要确保一个对应的自定义的DefaultAnnotation HandlerMapping和 /或AnnotationMethod HandlerAdapter同样被定义——假设想要使用@RequestMapping 。
例1:雁联zfpt-servlet.xml例2:web.xml2.1 webAppRootKey2.3 log4jConfigLocation2.4 contextConfigLocation2.5 springSecurityFilterChain2.6 Log4jConfigListener2.7 ContextLoaderListener2.8 DispatcherServlet2.9 exception.java例3:雁联web.xml如果你想要自定义映射策略,显式的定义一个DefaultAnnotationHandlerMapping和 /或AnnotationMethodHandlerAdapter也有实际意义。
ASP_NET_MVC3中文版教程
MVC3 快速入门第一节概述本教程的学习内容在本教程中,你将学会如下内容:如何创建一个 MVC的工程。
如何创建 MVC的控制器(controller)与视图(view)。
如何使用Entity Framework code-first 范例来创建一个新的数据库。
如何获取和显示数据。
如何编辑数据并且进行数据的有效性验证。
创建工程如果要创建一个 MVC3的工程时,首先运行Visual Web Developer 2010 Express,并且在起始页(start page)中选择“新建项目”。
Visual Web Developer是一个集成开发环境,你可以使用它来进行各种应用程序的开发。
在Visual Web Developer的菜单的下面有一个工具条,可以直接点击工具条中的各个工具按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击“文件”菜单中的“新建项目”菜单项。
图1-1 Visual Web Developer 2010 Express中的起始页创建你的第一个应用程序你可以使用Visual Basic 或Visual C#作为开发语言来创建应用程序。
在本教程中,选择C#来作为开发语言。
点击“新建项目”菜单项后,在打开的“新建项目”对话框中,双击左边的“Visual C#”使其成为展开状态,然后点击“Web”,点击右边的“ MVC 3 Web 应用程序”,然后在下方的名称文本框中填入应用程序的名称,在本教程中命名为“MvcMovie”,然后点击确定按钮。
图1-2 在新建项目对话框中选择 MVC3应用程序并为应用程序命名在接下来打开的“新 MVC 3 项目”对话框中,点击选中“Internet 应用程序”,在“视图引擎”下拉框中保持默认的“Razor”选项不作修改(Razor视图是 MVC3种新增的一种十分重要的视图类型,使用它可以使得Web应用程序的开发变得更加方便快捷,在后文中将对此进行详细介绍)。
【2020最新智库】ASP.NETMVC3快速入门知识
MVC3快速入门-第一节概述(2011-02-2320:57:18)转载标签:web应用程序,分类:MVC31.1本教程的学习内容于本教程中,你将学会如下内容:•如何创建一个MVC的工程。
•如何创建MVC的控制器(controller)与视图(view)。
•如何使用EntityFrameworkcode-first范例来创建一个新的数据库。
•如何获取和显示数据。
•如何编辑数据且且进行数据的有效性验证。
1.2创建工程如果要创建一个MVC3的工程时,首先运行VisualWebDeveloper2010Express (本教程中简称“VisualWebDeveloper”),且且于起始页(startpage)中选择“新建项目”。
VisualWebDeveloper是一个集成开发环境,你可以使用它来进行各种应用程序的开发。
于VisualWebDeveloper的菜单的下面有一个工具条,可以直接点击工具条中的各个工具按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击“文件”菜单中的“新建项目”菜单项。
图1-1VisualWebDeveloper2010Express中的起始页1.3创建你的第一个应用程序你可以使用VisualBasic或VisualC#作为开发语言来创建应用程序。
于本教程中,选择C#来作为开发语言。
点击“新建项目”菜单项后,于打开的“新建项目”对话框中,双击左边的“VisualC#”使其成为展开状态,然后点击“Web”,点击右边的“MVC3Web 应用程序”,然后于下方的名称文本框中填入应用程序的名称,于本教程中命名为“MvcMovie”,然后点击确定按钮。
图1-2于新建项目对话框中选择MVC3应用程序且为应用程序命名于接下来打开的“新MVC3项目”对话框中,点击选中“Internet应用程序”,于“视图引擎”下拉框中保持默认的“Razor”选项不作修改(Razor视图是MVC3种新增的一种十分重要的视图类型,使用它可以使得Web应用程序的开发变得更加方便快捷,于后文中将对此进行详细介绍)。
MVC实用基础介绍
MVC 1 Razor模板引擎1.1MVC3.0项目结构Global.asax附有路由注册、全局过滤器注册1.2Razor模板结构及语法1.2.1 模板类型1.2.2 基本模板语法其实在使用<%= %>在html中调用C#代码时,当穿插较多HTML代码时且有局部逻辑处理时。
这个写法非常麻烦。
麻烦在哪呢?其实就是手动闭合。
比如:: <script src="<%=Url.Content("~/Scripts/jquery-1.4.4.min.js")%>"Razor: <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")"Razor在内部帮我们做了闭合“%>”。
其实就是这个小小的闭合让我们可以在html内更加“流畅”的调用服务端代码1.2.2.1 基础所有以@开头或@{ /* 代码体*/ } (在@与{直接不得添加任何空格) 的部分代码都会被引擎进行处理。
在@{ /*代码体*/ } 内的代码每一行都必须以";"结束,如:@{int a = 1;double c = 2.12;}而@conparm,则不需要以”;”结束,如:@a,输出1@c,输出2.121.2.2.2 局部变量Razor不支持访问修饰符,所以使用public、private等修饰变量,是没有意义的,如:@{int a = 1;double c = 2.12;}注:在@{}中定义的变量,在当前代码块以下均可使用但出现在@if (true) {}块中的变量,只能在此块内使用,不能越界,如:@if (Model != null&& Model.Count>0){string xxxx = "wer";}@{string xxxx2 = xxxx;【不可访问】}1.2.2.3视图局部输出字符拼接尽量使用@{}代码块进行处理【或包含在代码块内】,如:<ul>@if (a > 0){string xxxx = "wer";string willchange = "12" + a + "xxx" + "yyy";<li id="ul_li_@{@a}">@willchange</li><li>"12"@a.ToString()"xxx"+"yyy"</li>@:"这是奇葩"}</ul>输出效果:12.12121xxxyyy"12"1"xxx"+"yyy"12@a.ToString()xxx+yyy这是奇葩1.2.2.4 使用逻辑处理@if (true){//do something}else{//do other tings}1.2.2.5 在@{...}内使用html标记@{//这是局部变量string artilc_title = "这是文章Title这是文章Title"; <p>这是文章Title</p><div>@artilc_title</div>}1.2.2.6 在@{...}内输出文本@{@:this is my text<br/>@:"this is my text"<br/>@:"this is my text"+12<br/>@:"this is my text"+"12"<br/>}输出效果:this is my text"this is my text""this is my text"+12"this is my text"+"12"1.2.2.7 在@{…}内使用循环体for、foreach@{List<string> list = new List<string>() { "认识mvc循环体A", "认识mvc循环体B" };foreach (var item in list){<p>@item</p>}for (int i = 0; i < list.Count; i++){<p>@list[i]</p>}}1.2.2.8 在@{...}内使用注释@{//单行@*多行*@/** 多行*///以下注释,会理解会输出字符串,虽实际情况并为输出<!-- time now: @DateTime.Now.ToString() -->}1.3RenderSection()、RenerBody()、Renderpage()1.3.1 @RenderBody()当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过_Layout.cshtml布局页面的@RenderBody()方法呈现在标签之间1.3.2 @RenderPage()从名称可以猜出来这个方法是要呈现一个页面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
«博客园首页
MVC 3.0学习系列文章--Razor and
MVC 3.0
作者:Nic Pei来源:博客园发布时间:2011-01-23 23:01 阅读:4420 次原文链接[收藏]
系列文章
MVC 3.0学习系列文章—序
Razor and MVC 3.0
MVC 3.0学习系列文章—Controllers in MVC 3.0
MVC 3.0学习系列文章—Model in MVC 3.0
MVC
3.0学习系列文章--Dependency Resolution in MVC 3.0
这篇文章主要介绍内容如下:
1.Introduction
很多文章里都有介绍Razor,园子里也有很多文章介绍。
推荐大家看看ScotGu
的博客看看Razor的介绍。
2.Razor’s Goals
a.Easy to use & easy to learn :
为什么说Razor容易使用呢》首先是它简洁的语法,让我们在写View页面时更加容易,另外你用过Razor后或者是使用它作为View Engine来发布你的网站或者系统的话,你会发现Razor的所有方法都单独的放在了一个dll中,你很容易把你当前的网站view engine转化为Razor view engine。
比如你可以在你的 webform项目中使用Razor,使用Razor语法来生成一些email发送的模板等。
你只要有创造力,相信你会发现Razor的好用。
说Razor容易学习是因为它的语法相当简单,你只要会C#,并使用过Webform View Engine,很快你就能够学会Razor。
b.No ties to runtime:
没错,Razor不依赖 runtime,它的model都是Dynamic类型的。
c.Smart:
与webform view engine 相比,Razor的语法更加smart,
3.Creating A Simpler View
现在我们定义一个简单的view,并输入如下内容:
现在我们未定义nicholaspei这个变量,但是还是可以通过编译的。
运行结果:
运行报错,看提示信息是nicholaspei在上下文中不存在。
我们再进一步看看Razor是如何运行的,看看下面的详细错误信息:
是通过C#编译时报的异常。
再看看下面更加详细的代码执行过程:
在这一行通过write来输入nocholaspei,编译器发现nicholaspei未定义,所以抛出异常。
那么如果我想输出一个@nicholaspei如何实现呢?
修改View如上面代码所示:
再次运行:
It’s work now……..
4.Intermingling Code and Markup
C#代码和HTML代码混合在一起。
我之前有两篇文章是介绍Razor语法的,你可以去学习它来看看Razor和html 标记如何混合使用。
/n-pei/archive/2011/01/13/1934149.html
/n-pei/archive/2011/01/15/1936267.html
这里不再啰嗦。
5.Models and ViewData
在Razor中很多都是Dynamic类型的。
上图是View的基类和WebViewPage的Generic类。
a.
Model类型是动态的。
来个例子说明:
先创建一个类Instructor。
定义如下:
我们使用HomeController来返回一个IEnumerable的Instructor 集合。
先是准备数据:
Index部分的Controller部分:
View部分需要注意下,因为Model是Dynamic类型的。
所以View的上面部分代码如下:
整个View的代码:
主意@model是动态的定义好Model,然后再foreach中使用Model。
运行结果:
还有一点需要注意的是这里的Html.Raw()是可以显示html标记的。
b.
在 mvc 3中新增了ViewBag它本身也是个dynamic类型的。
我们可以看看它和ViewData有什么区别:
Controller部分我们定义如下:
View部分你就可以看出来ViewData和ViewBag的区别了。
ViewDate中listColors是一个object所以我们需要先转化为List<string>,而在ViewBag中因为ListColors是Dynamic型的,所以可以直接使用。
6.HTML Helpers
目前所有的HTML Helpers都可以在Razor View Engine中使用,例如URL Helpers, AJAX Helpers,当然还在 Mvc 3中新增了些HTML Helpers。
7.Partial Views
Partial View部分,在Razor中新增了新的Helper方法:
Html.Partial(ViewName,model);
我们先定义一个View是Instructor:
修改index.cshtml,使用Html.Partial():
yout Views
在Razor中的Layout.cshtml相当于WebForm中的Master page.
其它的View主要是通过RenderBody()和RenderSection()来指定当前View在母版的显示位置。
这里你可以看到有个RenderSection(“header”,required:false)这行代码,如果不添加required:false,那么你的header.cshtml这个View必须存在。
9.Startup Code
在View每次渲染前,都会执行_ViewStart.cshtml的代码:
10.Configuration
关于Razor的配置,你可以看到它会在Web.Config中有一个单独的section来存放Razor的configuration:
如果你在其它例如web form中使用Razor,记得添加这部分配置。
PS: 希望大家提出宝贵的意见来让我写的东西帮助更多人,让大家更容易理解和学习 mvc 3。
Nick
》点击查看原文...。