码迷,mamicode.com
首页 > Web开发 > 详细

第1章 进入ASP.NET MVC世界

时间:2018-04-17 15:11:16      阅读:34      评论:0      收藏:0      [点我收藏+]

标签:系统启动   targe   eva   微软   false   解码   定义类   ali   表单   

第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(“~/”);

第1章 进入ASP.NET MVC世界

标签:系统启动   targe   eva   微软   false   解码   定义类   ali   表单   

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

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!