目前开发B/S系统的主要技术有ASP.NET 、JSP、PHP等。其中ASP.NET是
基于.NET平台创建动态网页的一种服务器技术,使用它可以创建动态交互
Web页面。
图1.1 .NET Framework与ASP.NET
ASP.NET MVC是ASP.NET技术的一个子集,他是ASP.NET技术和MVC模的完美结
合,类似与Java的struts框架。
首先,打开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文件:作用于整个项目的配置文件。
1.控制器说明
>System.Web命名空间:ASP.NET核心命名空间。
>System.Web.Mvc命名空间:开发ASP.NET MVC的最基本的命名空间。
>Controller类:每个控制器必须继承的基类。
>Index()方法:控制器的动作方法,用于响应客户端请求,并调用相应的视图输出信息。
2.基本规则
控制器都已Controller结尾,比如HomeController,当我们创建一个动作
方法Index(),那么如果让这个方法返回视图,它会默认找View文件夹下和控制
器名的文件夹Home,在找文件加下和动作方法重名的Index视图。
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
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创建母版视图
<%@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中常见的系统对象如下表所示
| 
 表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