zoukankan      html  css  js  c++  java
  • 第1章 进入ASP.NET MVC世界

    第1章 进入ASP.NET MVC世界

    ASP.NET 概述

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

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

    Web页面。

    clip_image003

    图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

    clip_image005

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

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

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

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

    的拦截器)的注册。

    2RouteConfig.cs文件

    clip_image007

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

    3视图命名和寻址规则

    clip_image009

    4Web服务器

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

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

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

    false

    ASPX视图

    ASPX视图的声明和编码

    1@Page指令

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

    属性

    说明

    Language

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

    Inherits

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

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

    ContentType

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

    ValidateRequest

    指定是否验证请求

    MasterPageFile

    指定使用的模板视图文件

    2@Import指令

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

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

    3服务器端内嵌语法

    <%%>小脚本

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

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

    母版视图

    1创建母版视图

    clip_image011

    <%@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使用母版视图

    clip_image013

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

  • 相关阅读:
    【数据库】不同数据库对于between and的处理 对于取查到的第一个的处理
    【调试】用chrome调试获得时间戳
    【js】js时间格式化
    【js】vue时间格式转化
    【js】ztree
    我的mybatis入门宝典
    mybatis一对多双向映射
    java为什么不支持多继承
    java的八种数据类型
    java中的异常 try catch
  • 原文地址:https://www.cnblogs.com/xuzhen97/p/8866213.html
Copyright © 2011-2022 走看看