详情请参考菜鸟教程:http://www.runoob.com/aspnet/aspnet-tutorial.htmlcss
1.ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本建立网页和网站的开发框架。html
2.ASP.NET 支持三种不一样的开发模式:Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)数据库
其中,Web Pages 是开发 ASP.NET 网站最简单的开发模式。express
使用 VB (Visual Basic) 或者 C# (C sharp) 最新的 Razor 服务器标记语法将 HTML、CSS、JavaScript 和服务器代码结合起来。编程
3.ASP.NET 是新一代 ASP 。它与经典 ASP 是不兼容的,但 ASP.NET 可能包括经典 ASP。数组
ASP.NET 页面是通过编译的,这使得它们的运行速度比经典 ASP 快。浏览器
ASP.NET 具备更好的语言支持,有一大套的用户控件和基于 XML 的组件,并集成了用户身份验证。服务器
ASP.NET 页面的扩展名是 .aspx ,一般是用 VB (Visual Basic) 或者 C# (C sharp) 编写。框架
在 ASP.NET 中的控件能够用不一样的语言(包括 C++ 和 Java)编写。编程语言
4.Razor 是一种将服务器代码嵌入到 ASP.NET 网页中的新的、简单的标记语法,很像经典 ASP 。
经典 ASP 文件的文件扩展名为 .asp
ASP.NET 文件的文件扩展名为 .aspx
Razor C# 语法的 ASP.NET 文件的文件扩展名为 .cshtml
Razor VB 语法的 ASP.NET 文件的文件扩展名为 .vbhtml
5.Web Pages(Web 页面)WP开发模式(提供了一种简单的方式来将 HTML、CSS、JavaScript 和服务器脚本结合起来)
xxx .cshtml文件
<!DOCTYPE html> <html> <body> <h1>Hello Web Pages</h1> <p>The time is @DateTime.Now</p> </body> </html>
<html> <body> <!-- Single statement block --> @{ var myMessage = "Hello World"; } <!-- Inline expression or variable --> <p>The value of myMessage is: @myMessage</p> <!-- Multi-statement block --> @{ var greeting = "Welcome to our site!"; var weekDay = DateTime.Now.DayOfWeek; var greetingMessage = greeting + " Here in Huston it is: " + weekDay; } <p>The greeting is: @greetingMessage</p> </body> </html>
<!-- Single statement block --> @Code dim myMessage = "Hello World" End Code <!-- Inline expression or variable --> <p>The value of myMessage is: @myMessage</p> <!-- Multi-statement block --> @Code dim greeting = "Welcome to our site!" dim weekDay = DateTime.Now.DayOfWeek dim greetingMessage = greeting & " Here in Huston it is: " & weekDay End Code <p>The greeting is: @greetingMessage</p>
内容块(来自另外一个文件)能被导入网页中的任何地方。内容块能够包含文本,标记和代码,就像任何普通的网页同样。
使用 @RenderPage() 方法从不一样的文件导入内容。
<html> <body> @RenderPage("header.cshtml") <h1>Hello Web Pages</h1> <p>This is a paragraph</p> @RenderPage("footer.cshtml") </body> </html>
布局页中使用 @RenderBody() 方法嵌入内容页,除此以外,它与一个正常的网页没有什么差异。
布局页:
<html> <body> <p>This is header text</p> @RenderBody() <p>© 2012 Runoob. All rights reserved.</p> </body> </html>
内容页:
@{Layout="Layout.cshtml";} <h1> Welcome to W3Cschool </h1> <p>Hello!!! </p>
经过 Content Blocks(内容块)和 Layout Pages(布局页)这两个 ASP.NET 工具,可让 Web 应用程序显示一致的外观。
在 ASP.NET 中,文件的名称如下划线开头,能够防止这些文件在网上被浏览。
若是不但愿内容块或者布局页被用户看到,能够重命名这些文件:
_header.cshtm
_footer.cshtml
_Layout.cshtml
在 ASP.NET 中,隐藏敏感信息(数据库密码、电子邮件密码等等)最通用的方法是将这些信息保存在一个名为"_AppStart.cshtml"的单独的文件中。
@{ WebMail.SmtpServer = "mailserver.example.com"; WebMail.EnableSsl = true; WebMail.UserName = "username@example.com"; WebMail.Password = "your-password"; WebMail.From = "your-name-here@example.com"; }
6.Web Pages - 文件夹
ASP.NET 文件夹路径有 3 种工具:~ 运算符、Server.MapPath 方法 和 Href 方法。
使用 ~ 运算符,在编程代码中规定虚拟路径
var myStyleSheet = "~/styles/StyleSheet.css";
Server.MapPath 方法
Server.MapPath 方法将虚拟路径(/index.html)转换成服务器能理解的物理路径(C:\Documents\MyWebSites\Demo\default.html)
var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);
Href 方法将代码中的使用的路径转换成浏览器能够理解的路径(浏览器没法理解 ~ 运算符)
通常会在 HTML 中的 <a>、<img> 和 <link> 元素中使用此方法:
@{var myStyleSheet = "~/Shared/Site.css";}
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />等价于:
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />
Href 方法是 WebPage 对象的一种方法。
7.Web Pages - 全局页面
站点根目录下建立一个名为 _AppStart 的页面,这样在站点启动以前能够先启动代码执行。
_AppStart 的典型用途是启动代码和初始化全局数值(好比计数器和全局名称)。
注释 1:_AppStart 的文件扩展名与您的网页一致,好比:_AppStart.cshtml。
注释 2:_AppStart 有下划线前缀。所以,这些文件不能够直接浏览。
能够编写在每一个文件夹中的任何页面以前运行的代码。
_PageStart 的典型用途是为一个文件夹中的全部页面设置布局页面,或者在运行某个页面以前检查用户是否已经登陆。
当接收到一个请求时,ASP.NET 会首先检查 _AppStart 是否存在。 若是 _AppStart 存在且这是站点接收到的第一个请求,则运行 _AppStart。
而后 ASP.NET 检查 _PageStart 是否存在。若是 _PageStart 存在,则在其它被请求的页面运行以前先运行 _PageStart。
您能够在 _PageStart 中调用 RunPage() 来指定被请求页面的运行位置。不然,默认状况下,被请求页面是在 _PageStart 运行以后才被运行。
8.Web Pages - HTML 表单
表单是 HTML 文档中放置输入控件(文本框、复选框、单选按钮、下拉列表)的部分
<!DOCTYPE html> <html> <body> @{ if (IsPost) { string companyname = Request["CompanyName"]; string contactname = Request["ContactName"]; <p>You entered: <br> Company Name: @companyname <br> Contact Name: @contactname </p> } else { <form method="post" action=""> Company Name:<br> <input type="text" name="CompanyName" value=""><br> Contact Name:<br><br> <input type="text" name="ContactName" value=""><br><br> <input type="submit" value="Submit" class="submit"> </form> } } </body> </html>
<img src="images/Photo1.jpg" alt="Sample" />
9.Web Pages - 对象
使用的 Page 对象方法:
@RenderPage("header.cshtml")
@RenderBody()
.......
Page 对象属性(isPost 和 Request)......
Page 对象的 Page 属性,提供了对页面和布局页之间共享的数据的相似属性访问。
能够对 Page 属性使用(添加)本身的属性:
页面属性是很是有用的。例如,在内容文件中设置页面标题,并在布局文件中使用:
内容页:
@{ Layout="~/Shared/Layout.cshtml"; Page.Title="Home Page" } <h1>Welcome to runoob.com</h1> <h2>Web Site Main Ingredients</h2> <p>A Home Page (Default.cshtml)</p> <p>A Layout File (Layout.cshtml)</p> <p>A Style Sheet (Site.css)</p>
布局页:
<!DOCTYPE html> <html> <head> <title>@Page.Title</title> </head> <body> @RenderBody() </body> </html
10.Pages - 文件
若是没有 App_Data 文件夹,请建立一个。在 App_Data 文件夹中,建立一个名为 Persons.txt 的文件。
文件内容为:
George,Lucas
Steven,Spielberg
Alfred,Hitchcock
使用 Server.MapPath 找到确切的文本文件的路径。
使用 File.ReadAllLines 打开文本文件,并读取文件中的全部行到一个数组中。
数组中的每一个数据行中的数据项的数据被显示。
@{ var dataFile = Server.MapPath("~/App_Data/Persons.txt"); Array userData = File.ReadAllLines(dataFile); } <!DOCTYPE html> <html> <body> <h1>Reading Data from a File</h1> @foreach (string dataLine in userData) { foreach (string dataItem in dataLine.Split(',')) {@dataItem <text> </text>} <br /> } </body> </html>
11.Web Pages - 帮助器(Web 帮助器大大简化了 Web 开发和常见的编程任务)
可使用存放在 .cshtml 文件中的 Razor 语法构建本身的帮助器,或者使用内建的 ASP.NET 帮助器。
var grid = new WebGrid(data);
@grid.GetHtml();
Chart 帮助器显示的数据来源能够是数组、数据库或者文件。
根据数组数据显示图表:
@{ var myChart = new Chart(width: 600, height: 400) .AddTitle("Employees") .AddSeries(chartType: "column", xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, yValues: new[] { "2", "6", "4", "5", "3" }) .Write(); }
根据数据库建立图表: 略.......
根据 XML 数据建立图表: 略.......
12.Web Pages - 发布网站
............