第1章 进入ASP.NET MVC世界

第1章 进入ASP.NET MVC世界

ASP.NET 概述

目前开发B/S系统的主要技术有ASP.NET 、JSP、PHP等。其中ASP.NET是

基于.NET平台创建动态网页的一种服务器技术,使用它可以创建动态交互

Web页面。

图1.1 .NET Framework与ASP.NET

ASP.NET MVC简介

ASP.NET MVC是ASP.NET技术的一个子集,他是ASP.NET技术和MVC模的完美结

合,类似与Java的struts框架。

第一个ASP.NET MVC程序

创建ASP.NET MVC应用

首先,打开VS2012,执行“文件”->“新建”->“项目”命令,左边项

目类型选择“web”选项,在中间的.NET框架版本下拉列表选择“.NET Frame

work4.5”选项,选择“ASP.NET MVC4 Web应用程序”。

项目结构说明如下:

>App_Data文件夹:用来存放系统包含的数据库文件。

>App_Start文件夹:包含ASP.NET MVC系统启动的相关类文件。

>Controllers文件夹:放置整个项目的控制器代码文件。

>Models文件夹:放置整个项目的模版代码文件。

>Views文件夹:放置整个项目的视图代码文件。

>View下的Web.config文件:作用于视图的配置文件。

>Global.asax文件:全局应用程序文件,一般和App_Start文件夹中的类配合使用。

>packages.config文件:用于管理项目用到的程序集版本。

>根目录下的Web.config文件:作用于整个项目的配置文件。

Hello,ASP.NET MVC

1.控制器说明

>System.Web命名空间:ASP.NET核心命名空间。

>System.Web.Mvc命名空间:开发ASP.NET MVC的最基本的命名空间。

>Controller类:每个控制器必须继承的基类。

>Index()方法:控制器的动作方法,用于响应客户端请求,并调用相应的视图输出信息。

2.基本规则

控制器都已Controller结尾,比如HomeController,当我们创建一个动作

方法Index(),那么如果让这个方法返回视图,它会默认找View文件夹下和控制

器名的文件夹Home,在找文件加下和动作方法重名的Index视图。

ASP.NET MVC程序的工作原理

1 Global.asax

在ASP.NET程序中,Global.asax主要是在系统启动时做一些全局性的工

作。从上述代码可以看出,它调用App_Start文件夹中的相关类来完成这些工

作,如调用RouteConfig.Register Routes()来完成路由注册;调用

FilterConfig.RegisterGlobalFilters()来完成全局过滤器(类似与Struts中

的拦截器)的注册。

2RouteConfig.cs文件

这里RegisterRoutes()方法的作用就是定义路由,即定义URL访问规则。

3视图命名和寻址规则

4Web服务器

Web.config中有一项和调试相关的配置,如下所示。

<compilation debug="true" targetFramework="4.5" />

其中,debug=”true”即表示支持调试,在正式发布后,debug还需要设置为

false

ASPX视图

ASPX视图的声明和编码

[email protected]指令


表1-3 @Page指令常用属性


属性


说明


Language


指定页面代码和后置代码使用的语言,需要注意的是这里只支持微软.net框架中的语言


Inherits


继承的页面类,ASPX视图一般继承System.Web.ViewPage和

System.Web.View<T>两种类型


ContentType


指定MIME类型和页面回应是所采用的字符编码方式


ValidateRequest


指定是否验证请求


MasterPageFile


指定使用的模板视图文件

[email protected]指令

在ASPX视图中,可以通过@Import指令引入新的命名空间.

<%@Import Namespace=”MvcDemo.Helper”%>

3服务器端内嵌语法

<%%>小脚本

<%=%>或<%:%>表达式

<script runat=”server”></script>服务器端脚本块

母版视图

1创建母版视图

<%@MasterLanguage="C#"Inherits="System.Web.Mvc.ViewMasterPage"%>

<!DOCTYPEhtml>

<html>

<headrunat="server">

<metaname="viewport"content="width=device-width"/>

<title><asp:ContentPlaceHolderID="TitleContent"runat="server"/></title>

</head>

<body>

<div>

<asp:ContentPlaceHolderID="MainContent"runat="server">

</asp:ContentPlaceHolder>

</div>

</body>

</html>

2使用母版视图

<%@PageTitle=""Language="C#"MasterPageFile="~/Views/PartialView/ViewMasterPage1.Master"Inherits="System.Web.Mvc.ViewPage<dynamic>"%>

<asp:ContentID="Content1"ContentPlaceHolderID="TitleContent"runat="server">

View1

</asp:Content>

<asp:ContentID="Content2"ContentPlaceHolderID="MainContent"runat="server">

<h2>View1</h2>

</asp:Content>

3资源文件加载工具方法

Url.Content(“~/css/style.css”)//~代表服务器根目录

ASP.NET系统对象

ASP.NET系统对象简介

ASP.NET中常见的系统对象如下表所示


表1-4 ASP.NET系统对象


对象名称


说明


Request


用来获取客户端在Web请求期间发送的值,如URL参数、表单值等。


Response


用来负责返回到客户端的HTTP输出


Application


作用于整个程序运行期的状态对象,可用来保存整个应用程序的配置参数


Session


会话状态保持对象


Cookie


客户端保持会话信息的方式


Server


用于进行一些服务器端处理的工具对象,如URL编码解码、页面转发


HttpContext


封装有关个别HTTP请求的所有HTTP特定的信息

1.Request对象


成员


说明


string ContentType


获取或设置传入请求的MIME内容类型


HttpCookieCollection Cookies


获取客户端发送的Cookie的集合


HttpFileCollection Files


获取由客户端上载的文件的集合


NameValueCollection Form


获取表单提交的数据


NameValueCollection Headers


获取HTTP头集合


NameValueCollection QueryString


获取HTTP查询字符串变量集合


string RawUrl


获取当前请求的原始URL


NameValueCollection ServerVariables


获取Web服务器变量的集合


string UserAgent


获取客户端浏览器的原始用户代理信息


string UserHostAddress


获取远程客户端的IP主机地址


string MapPath(string virtualPath)


指定的虚拟路径映射到物理路径


void SaveAs(string filename,bool includeHeaders)


将HTTP请求保存到磁盘

2.Response


成员


说明


string ContentType


获取或设置输出流的HTTP MIME类型


HttpCookieCollection Cookies


获取响应Cookie集合


NameValueCollection Headers


获取响应表头的集合


void Redirect(string url)


将请求重定向到新的URL


void Write(string s)


将一个字符串写入HTTP响应输出流

3.Server对象


常用成员


说明


string MapPath(string path)


返回与Web服务器上的指定虚拟路径相对应的物理文件路径


void Transfer(string path)


使用指定的path进行页面转发


string UrlDecode(string s)


对字符串进行URL编码


string UrlEncode(string s)


对字符串进行URL编码

4.Session对象


常用成员


说明


string SessionID


包含唯一的用户会话标识符,它可用于在整个会话过程中记录用户信息。


int Timeout


用户超时时间,单位为分钟,Session中数据的生存期以超时时间为限。


void Abandon()


结束Session,取消当前会话


void Add(string name,object value)


添加Session数据


void Remove(string name)


删除Session数据

5.Cookie对象


常用成员


说明


string Name


Cookie对象的名称


string Value


Cookie对象的内容(值)


DateTime Expires


Cookie对象的有效时间。如果没有设置Cookie的失效日期,它们仅保存到关闭浏览器程序为止;如果将Cookie对象的Expires属性设置为

DateTime.MaxValue,则表示Cookie永远不会过期。

语法:

Response.Cookies[Cookie的名称].value=变量值;//写入Cookie

String 变量名=Request.Cookies[Cookie的名称].Value;//读取Cookie

HttpCookie hcCookie = new HttpCookie(“Cookie的名称”,”值”);

Response.Cookies.Add(hcCookie);

6.Applicaion对象

语法:

Appliation[“Application名称”]=值;//存值

变量=Application[“Application名称”];//取值

7.HttpContext对象


常用成员


说明


HttpApplicationState Application


Application对象


HttpRequest Request


Request对象


HttpResponse Response


Response对象


HttpServerUtility Server


Server对象


HttpSessionState Session


Session对象


IPrincipal User


User对象


System.Web.Caching.Cache Cache


Cache对象


static HttpContext Current


为当前HTTP请求获取或设置

System.Web.HttpContext对象

在某些特殊情况下,可能需要在其他自定义类中访问这些对象,这是只需要通过HttpContext的Current属性就能达到目标,用法如下面代码所示:

System.Web.HttpContext.Current.Response.Redirect(“~/”);

原文地址:https://www.cnblogs.com/xzcode/p/8866213.html

时间: 2024-10-10 14:29:21

第1章 进入ASP.NET MVC世界的相关文章

ASP.NET MVC验证框架中关于属性标记的通用扩展方法

http://www.cnblogs.com/wlb/archive/2009/12/01/1614209.html 之前写过一篇文章<ASP.NET MVC中的验证>,唯一的遗憾就是在使用Data Annotation Validators方式验证的时候,如果数据库是Entityframework等自动生成的文件,就没有办法使用扩展属性标记进行标记.现在已经开始有了一些其它的Asp.net MVC 验证框架,使用上跟Data Annotation Validators差不太多,但是普遍有这样

全网最全ASP.NET MVC 教程汇总

全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MV

C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)

译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 and .NET Core 1.0>.水平有限,各位阅读时仔细分辨,唯望莫误人子弟. 附英文版原文:Professional C# 6 and .NET Core 1.0 - Chapter 41 ASP.NET MVC ------------------------------------ 本

自学MVC看这里——全网最全ASP.NET MVC 教程汇总(转)

自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习

时间:第1周9月16日;主题:初识ASP.NET MVC项目开发(一)

Part I:回顾及提问 ==================== 1. ASP.NET MVC是微软公司.NET平台上的一个______________,它为开发者提供了一种构建结构良好的Web应用程序的方式. 2. 自2007年首次公布预览以来,作为_____________的替代品,ASP.NET MVC的普及度已明显提高,现在很多大型Web应用程序都是使用这一技术构建的. 3. 为了简化软件开发的复杂度,以一种概念简单却又权责分明的架构来贯穿整个软件开发流程,将业务逻辑层与_______

学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器

MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑.MVC是一种具有可测试性和易于维护的应用程序开发模式. 基于MVC的应用程序应该包含以下内容: ?模型:表示应用程序核心,是该应用程序中用来进行校验.执行业务逻辑的数据类,业务实体对象. ?视

ASP.NET MVC 教程汇总

自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.NET

《转》自学asp.net mvc

自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习