跟我一起学习ASP NET4.5MVC4.0.二
- 格式:pdf
- 大小:954.26 KB
- 文档页数:4
MVC4.0官⽅教程⼊门指南之⼀--⼊门介绍本教程将为您讲解使⽤微软的Visual Studio 2012 来建⽴⼀个 MVC4 Web应⽤程序所需要的基础知识。
本⽰例将构建什么样的应⽤程序?您将实现⼀个简单的电影管理应⽤程序,此程序将从数据库中选取记录展⽰列表,⽀持查询和查看,实现电影记录的创建、删除和编辑功能。
所有的⽤户数据输⼊场景都包含了数据验证逻辑,以确保存储在数据库中的数据都是正确的。
预览图如下:译者注:上图中的界⾯经过进⼀步的汉化处理,⽽并⾮默认的英⽂显⽰。
下⾯进⼊正题。
运⾏vs2012,新建项⽬,从已安装的项⽬模板中选择 c#-》web-》 MVC 4 Web 应⽤程序。
命名您的⼯程为"MvcMovie",然后单击确定.在弹出的窗⼝中Internet应⽤程序(第三个),视图引擎保持默认的Razor,确定,等待⽚刻,vs使⽤模板将整个项⽬创建完毕,整个项⽬⽬录如下图所⽰。
按F5,可以看到整个项⽬运⾏效果,如下图所⽰你可以看到,这是⼀个简易的全站程序,已经实现了注册和登录功能,并且有“关于”和“联系⽅式”,很⽅便吧本教程所有⽂章导航本系列共10篇⽂章,翻译⾃ MVC4 官⽅教程,由于本系列⽂章⾔简意赅,篇幅适中,从⼀个⽰例开始讲解,全⽂最终完成了⼀个管理影⽚的⼩系统,⾮常适合新⼿⼊门 MVC4,并由此开始开发⼯作。
原⽂供9篇⽂章,译者将其中第6篇拆成了2篇1. MVC4 ⼊门介绍2. 添加⼀个控制器3. 添加⼀个视图4. 添加⼀个模型5. 从控制器访问数据模型6. 查看Edit⽅法和Edit视图7. 为Movie模型和库表添加字段8. 为模型添加验证9. 查看Detail和Delete⽅法。
跟我一起学习4.5MVC4.0(五)前面几篇文章介绍了一下 MVC中的一些基础,今天我们一起来学习一下在 MVC中控件的封装。
在页面中我们会经常使用到Html对象,来程序控件,当然这里的控件不是说中包含很多ViewState或其他信息的控件。
在 MVC 中控件就是扩展方法,主要对HtmlHelper实例的扩展,不过这里主要会提到CheckBoxList和RadioButtonList的扩展,因为在微软自带的控件中是没有这两个控件存在的,所以我们需要自己扩展。
最后还会介绍一下,Html.CheckBoxFor这个控件在使用时会有两个值,在服务端进行判断的结果。
MVC(包含MVC3.0,MVC4.0)中的控件都在System.Web.Mvc中,这里需要了解一下HtmlMvcString和普通的string的区别。
在我看来HtmlMvcString就是对string进行编码,使得浏览器能够正确解析HTML字符串。
这样在前台显示时就不需要使用Html.Raw方法对字符串进行编码,否则显示的字符串将不会解析成HTML代码。
这个只需了解就可以了,有兴趣可以试试就知道所以然了,所以MVC控件都需要返回这个对象。
在 MVC中,lumbda表达式是很经常用的,而且非常好用。
在页面中声明了一个模型,那样就可以使用lumbda表达式进行实例的赋值和判断,当然在对控件扩展时就会预见到表达式的使用,这些都是.NET3.5的特性,这里就不多赘述。
1///<summary>2///复选框扩展。
3///</summary>4///<typeparam name="TModel">模型类型。
</typeparam>5///<typeparam name="TProperty">属性类型。
</typeparam>6///<param name="helper">HTML辅助方法。
菜鸟学MVC4⼊门笔记 MVC 是微软官⽅提供的以MVC模式为基础的 Web应⽤程序(Web Application)框架,它由Castle的MonoRail⽽来。
MVC 编程模式MVC 是三种 编程模式中的⼀种。
MVC 是⼀种使⽤ MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应⽤程序的模式。
(1)Model(模型)表⽰应⽤程序核⼼(⽐如数据库记录列表)。
(2)View(视图)显⽰数据(数据库记录)。
(3)Controller(控制器)处理输⼊(写⼊数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应⽤程序中⽤于处理应⽤程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
View(视图)是应⽤程序中处理数据显⽰的部分。
通常视图是依据模型数据创建的。
Controller(控制器)是应⽤程序中处理⽤户交互的部分。
通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据。
新建⼀个 MVC4应⽤程序,结构如下图所⽰:对各个⽂件夹的说明:(1)App_Data ⽂件夹⽤于存储应⽤程序数据。
(2)Content ⽂件夹⽤于存放静态⽂件,⽐如样式表(CSS ⽂件)、图标和图像。
(3)Controllers ⽂件夹包含负责处理⽤户输⼊和相应的控制器类。
(4)Models ⽂件夹包含表⽰应⽤程序模型的类。
模型控制并操作应⽤程序的数据。
(5)Views ⽂件夹⽤于存储与应⽤程序的显⽰相关的 HTML ⽂件(⽤户界⾯)。
(6)Scripts ⽂件夹存储应⽤程序的 JavaScript ⽂件。
下⾯就主要的Controller、Model和View做出说明。
⼀、控制器1、描述控制器(Controller)主要负责响应⽤户的输⼊,并在响应时修改模型(Model)。
通过这种⽅式,控制器主要关注的是应⽤程序流、输⼊数据的处理,以及对相关视图(View)输出数据的提供。
C# 4.0程序开发基础教程与实验指导课程设计前言是一种非常流行的Web应用程序开发框架,它是微软开发的,具有简单易用,可扩展性强等优点。
C# 4.0是微软推出的一种编程语言,它是一种简单、现代、类型安全和面向对象的语言。
本教程旨在为初学者介绍 C# 4.0程序开发的基础知识和实验指导,帮助读者了解和掌握 C# 4.0的核心概念和编程技术。
第一章 C# 4.0程序开发基础1.1 C# 4.0的概念介绍 C# 4.0是一种基于Web的应用程序开发技术,通常用于构建动态网站、Web应用和Web服务等。
它是微软推出的,基于C#语言编写的,可以让程序员使用面向对象的编程语言来编写Web应用程序,大大提高了程序的可维护性和效率。
1.2 C# 4.0的基础知识 C# 4.0编程的基础知识包括:•C#语言基础知识• C# 4.0开发环境的搭建• C# 4.0程序的基本结构和组件• C# 4.0中常用的控件和组件• C# 4.0的数据访问技术1.3 C# 4.0的开发步骤 C# 4.0程序的开发步骤包括:•构建Web应用程序工程•选择合适的控件和组件•设计程序的界面和功能•编写和调试程序的代码•测试和部署程序第二章 C# 4.0程序开发实验指导2.1 实验环境的搭建在进行 C# 4.0程序开发前,需要先搭建好开发环境。
本实验环境主要包括开发工具Visual Studio、 C# 4.0软件开发包以及相关的数据库组件等。
2.2 实验一:创建一个简单的 C# 4.0应用程序本实验主要介绍如何利用Visual Studio快速创建一个 C# 4.0应用程序工程,并添加一些简单的功能。
2.3 实验二:利用 C# 4.0实现用户注册和登录功能本实验主要介绍如何利用 C# 4.0实现用户注册和登录功能,并解释其中涉及的一些 C# 4.0基础知识和技术。
2.4 实验三: C# 4.0与数据库的交互本实验主要介绍如何利用 C# 4.0和SQL Server数据库进行数据的增删改查操作,并给出一个完整的演示实例。
【基础--MVC】MVC视图基础语法学习初步接触.net MVC的视图语法,很多东西都不太熟悉,感觉跟之前的aspx以及html都有⼀些区别,最近看别⼈的代码,⼀边看⼀边研究,现把学到的东西在这⾥记录⼀下,以便⽇后翻阅。
第⼀部分:基础知识1.视图,英⽂叫做razor,在.net MVC项⽬中,它是以.cshtml后缀名来结束的。
2.⼀个很直观的发现,就是这种⽂件⾥⾯有很多⽤@开头或者以@{代码体},这种形式的代码是razor特有的⼀种策略,所有这类代码都会被asp引擎进⾏处理。
3.在@{代码体}这种形式中的{}⾥⾯的各条语句之间需要⽤;进⾏分隔,⽽如果只是单单的⼀个@后接代码,则不需要⽤;分割。
如[html]01. <span style="font-size:14px;">@{02. ViewBag.Title = "⽤户注册";03. Layout = "~/Views/Shared/_Layout.cshtml";04. }</span>和[html]01. <span style="font-size:14px;"> @Html.EditorFor(model => erName)02. @Html.ValidationMessageFor(model => erName)03. @Html.DisplayDescriptionFor(model => erName)</span>4.定义变量,可采⽤如下的⽅法定义变量。
[html]01. <span style="font-size:14px;">@{02. var greeting = "Welcome to our site!"; </span>[html]01. <span style="font-size:14px;"> var weekDay = DateTime.Now.DayOfWeek;02. var greetingMessage = greeting + " Today is: " + weekDay; }</span>有点类似于javascript,当然也可以在页⾯中使⽤这个变量,但是必须要有@这个符号。
MVC4.0官⽅教程⼊门指南之⼆--添加⼀个控制器MVC概念MVC的含义是 “模型-视图-控制器”。
MVC是⼀个架构良好并且易于测试和易于维护的开发模式。
基于MVC模式的应⽤程序包含:· Models:表⽰该应⽤程序的数据并使⽤验证逻辑来强制实施业务规则的数据类。
· Views:应⽤程序动态⽣成 HTML所使⽤的模板⽂件。
· Controllers:处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。
本系列教程,我们将覆盖所有这些概念,并告诉您如何使⽤它们来构建应⽤程序。
添加控制器让我们开始创建⼀个控制器类。
在解决⽅案资源管理器⾥,右键点击“Controllers”,选择“新建”-》“控制器……”,输⼊控制器名称“HelloWorldController”,模板保持默认的选项(“空MVC控制器”),点击“添加”按钮,新增的控制器类代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MvcMovie.Controllers{public class HelloWorldController : Controller{//// GET: /HelloWorld/public ActionResult Index(){return View();}}}修改代码如下:namespace MvcMovie.Controllers{public class HelloWorldController : Controller{public string Index(){return"这是我的<B>默认</B>⽅法";}public string Welcome(){return"这是欢迎⽅法";}}}根据传⼊的URL, MVC调⽤不同的控制器类(和它们之中不同的操作⽅法)。
[ MVC2 系列] MVC教程之《在15分钟内用 MVC创建一个电影数据库应用程序》Stephen Walther 从头开始到结束建立了整个数据驱动 MVC应用程序。
这个教程对于那些刚刚接触 MVC框架以及想要获得一种建立 MVC 应用程序的过程的新人是一个很好的介绍。
这个教程的目的就是给你一种“它会是什么样子”去创建 MVC应用程序的理念。
在这一课中,从开始到结束,我将直接建立一个完整 MVC应用程序。
我向你展示如何建立一个简单的数据驱动应用程序,演示如何列出,创建和编辑数据库记录。
为简化创建应用程序的过程,我们会充分利用Visual Studio 2008的功能。
我们会让Visual Studio为我们的控制层,模型层,视图层生成初始代码和内容。
如果你已经使用Active Server Pages 或者来工作,那么你将对 MVC 很熟悉。
MVC 视图与ASP应用程序的页面非常相似。
并且与传统的 Web Forms 应用程序一样, MVC 为你提供了丰富的语言和.NET框架类。
我希望这篇教程将让你了解到创建 MVC应用程序的经验与创建ASP or Web Forms 应用程序的相似点和不同点. 这部电影数据库应用程序的概述因为我们的目标是让事情简单化,我们将建立一个非常简单的电影数据库应用程序。
我们的简单的电影的数据库应用程序将使我们能够做的三件事:1。
列出一系列电影数据库记录2。
创建一个新的电影数据库记录3。
编辑一个现有的电影数据库记录再次,因为我们想让事情变得简单,我们会利用 MVC框架少量的特点来建立我们的应用程序。
例如,我们不会利用测试驱动开发。
为了创造我们的应用程序,我们需要完成下列步骤:1。
建立 MVC Web Application 项目2。
创建数据库3。
创建数据库模型层4。
建立 MVC控制层5。
建立 MVC视图层篇前部分(准备工作)你将需要Visual Studio 2008 或者Visual Web Developer 2008 Express来建立一个 MVC 应用程序。
跟我一起学习 4.5 MVC4.0(二)
上一篇文章中(跟我一起学习 4.5 MVC4.0(一))我们基础的了解了一下 MVC4.0的一些比较简单的改变,主要是想对于MVC3.0来说的。
因为这一些列主要是要给 MVC初学者,或者还没有使用过MVC的开发者进行培训学习,当然也可以让我温习一下这种开发模式。
所以本篇不得不讲解一
下Razor的一些语法,以及在 MVC开发中的一些技巧和开发方法。
由于我在开发中不喜欢使用Entity Framework,所以这里我需要解释一下我认为的三层架构和MVC开发模式的应用。
本人开发的三层架构中,数据库层和逻辑层基本不变,唯一改变的是UI层换成了MVC模式开发。
当然,模型实例如果有需要会重新写,否则就会直接使用实体类进行替代,这只是我个人认识说不定是不正确的,希望各位大师能够多多指教。
首先我们来了解一下Razor的语法,在VS2010或者VS11中,添加一个试图就会让你选择使用Razor(cshtml)还是C#(ASPX)格式。
Razor在语法上的美化是显而易见的,但是有时候会出现一些莫名其妙的错误,但是一般都可以得到解决,要么加HTML标签,要么是有“()”等等都可以得到解决,这个也许是在编写的Text Template对我们所写的文本解析有点问题而已。
在Razor中使用“@”来替代“<%%>”的编码格式,当然如果需要代码块,就需要用到“@{}”。
在其中就可以编写C#代码,配合VS的只能解析,一般有过开发经验的人都可以很容易上手。
如果你想了解更多的语法相关问题,可以参考MVC3 Razor视图引擎的基础语法,下面介绍一下在MVC中很重要的几个关键字,在编程过程中会经常使用到。
一、@model模型定义
使用@model关键字可以定义一个Action里所对应的一个模型(经常可以叫他实体类),其实是对动态变量进行实例化,这样就可以直接在cshtml文件中调用“Model”变量。
而这个模型的实例,需要通过Controller进行传输,如果没有则“Model”将为null。
模型可以是一个实体类,也可以是一个列表实例,字典对象都可以进行定义,但是和Controller中的Action传回来的实例一定要一样,否则将会出现错误。
例如我们获取用户实例,并且在页面上呈现用户的具体信息,这样就可以将用户实例返回给前台cshtml页面,具体代码如下。
1 /// <summary>
2 /// 获取用户信息。
3 /// </summary>
4 /// <returns>返回行为结果。
</returns>
5 public ActionResult UserInfo()
6 {
7 var id = Convert.ToInt32(Request.QueryString["id"] ?? "0");
8 var user = Users.GetUser(id);
9 return View(user);
10 }
只要在cshtml页面上定义“@model User”这样这个页面的基本模型(Model)就是这个User类了,当然如果不为空的时候就可以直接调用了。
二、@section节点关键字
这里首先需要了解一下布局页面,在 MVC中约定,以“_”开头的文件在浏览器上面是不能访问的,而“Shared”文件夹是一个共享的文件夹,或者叫做通用文件夹。
一般不可以定义一个SharedController,这个我没试过,有兴趣你可以试试。
而“_viewstart.cshtml”里所指定的文件就是布局页面,相当于里的Master页面,这样讲应该会比较好了解。
每一个布局页都必须调用一个方法“@RenderBody()”,而这个@section就有点像placeholder一样,所知名的块名称需要和布局页里面定义的名称一样。
上面就可以很清楚的看到,其中required参数表示在子页面中是否一定要重写,一般不需要所以设置为false。
如果是true表示所有布局页的字页面都必须要有这个节点重现的代码块,在子页面中调用可以从下面的图中看到。
由于@section header设置了required:false,所以不重写没关系,忽略他。
节点一般使用“{}”包裹,而下面部分没有指定的就是Body部分了,用好布局页可以减少很多代码,这个是值得推荐的。
三、@helper方法定义
使用@helper关键字可以定义一个方法,这样就可以在页面中调用这个方法了,和C#中的方法一样。
在页面中定义的方法可以访问ViewBag,HttpContext等等页面的属性,返回的类型为“HelperResult”。
其他的写法和普通的方法没有区别,主要用于列表等等需要重复写进行可重复调用。
这个关键字还可以在App_Code文件夹中定义很多个方法集,我最常用的就是定义分页,比如只需要传入记录数,每页显示的记录数,以及当前页码和URL格式化参数,就可以在页面中很简单的呈现分页内容。
之所以推荐在App_Code这个文件夹中定义,是因为可以省略命名空间,文件名就是类名,而定义的方法就可以直接使
用“FileName.MethodName”格式调用,即静态方法类。
所以在这里定义的方法,不能够使用页面上面的ViewBag等等属性。
用好了以上三个关键字不仅对MVC有一个深刻的认识,也可以使得提高编码重用度。
下面我再介绍一下 MVC中文件夹结构和MVC中的对应关系,这个对于初学者来说是个很大的问题,因为我发现刚刚进行开发的人员找不到页面,找到页面又找不到控制器。
借助VS11这种文件显示结构,会更好理解,如下图所示。
从上图就可以很好的理解,M odels-V iews-C ontrollers这就组成了MVC,在Models中一般定义一些模型实体,并且会添加一些验证,这些模型实体类供控制
器Controllers中的方法调用。
在Controllers中定义的类型和Views文件夹下的文件夹名称相对应,文件夹名加上“Controller”就是控制器名称,这是一种命名约定就
像Attribute一样。
而其中的方法当然对于的就是Views下文件夹下的文件名了,这些都是一一对应的。
当然有些控制器返回的如果不是试图,可以不需要定义这些文件名,但是如果是返回试图,就会出现找不到cshtml页面的错误。
注:控制器的这种命名约定只是对于Internet Application,对于WebAPI这个就不一样了。
昨天所写和今天所讲都是比较基础的,学习都需要通过循序渐进,这样才可以慢慢进入正题,我希望我所写的能够给他人带来一点收获。
我没有整体规划一下写作的内容,经常都是想到什么写什么,所以可能会给初学者带来不好的感觉,敬请原谅。