详情请参考菜鸟教程:http://www.runoob.com/aspnet/aspnet-tutorial.html

1.ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。

2.ASP.NET 支持三种不同的开发模式:Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)

 其中,Web Pages 是开发 ASP.NET 网站最简单的开发模式。

使用 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>
  • Razor 是一种将基于服务器的代码添加到网页中的标记语法
  • Razor 具有传统 ASP.NET 标记的功能,但更容易使用并且更容易学习
  • Razor 是一种服务器端标记语法,与 ASP 和 PHP 很像
  • Razor 支持 C# 和 Visual Basic 编程语言

主要的 Razor C# 语法规则

  • Razor 代码块包含在 @{ ... } 中
  • 内联表达式(变量和函数)以 @ 开头
  • 代码语句用分号结束
  • 变量使用 var 关键字声明
  • 字符串用引号括起来
  • C# 代码区分大小写
  • C# 文件的扩展名是 .cshtml
<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>

主要的 Razor VB 语法规则

  • Razor 代码块包含在 @Code ... End Code 中
  • 内联表达式(变量和函数)以 @ 开头
  • 变量使用 Dim 关键字声明
  • 字符串用引号括起来
  • VB 代码不区分大小写
  • VB 文件的扩展名是 .vbhtml
<!-- 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>

Web Pages - 页面布局

内容块(来自另一个文件)能被导入网页中的任何地方。内容块可以包含文本,标记和代码,就像任何普通的网页一样。

使用 @RenderPage() 方法从不同的文件导入内容。

<html>
<body>
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1>
<p>This is a paragraph</p>
@RenderPage("footer.cshtml")
</body>
</html>

Layout Page(布局页)

布局页中使用 @RenderBody() 方法嵌入内容页,除此之外,它与一个正常的网页没有什么差别。

布局页:

<html>
<body>
<p>This is header text</p>
@RenderBody()
<p>&copy; 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 - 文件夹

逻辑文件夹结构和物理文件夹结构

虚拟名称和物理名称

URL 和路径

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 - 全局页面

在 Web 启动之前:_AppStart

站点根目录下创建一个名为 _AppStart 的页面,这样在站点启动之前可以先启动代码执行。

_AppStart 的典型用途是启动代码和初始化全局数值(比如计数器和全局名称)。

注释 1:_AppStart 的文件扩展名与您的网页一致,比如:_AppStart.cshtml。

注释 2:_AppStart 有下划线前缀。因此,这些文件不可以直接浏览。

在每一个页面之前:_PageStart

可以编写在每个文件夹中的任何页面之前运行的代码。

_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="data:images/Photo1.jpg" alt="Sample" />

9.Web Pages - 对象

Page 对象

使用的 Page 对象方法:

@RenderPage("header.cshtml")

@RenderBody()

.......

Page 对象属性(isPost 和 Request)......

Page 对象的 Page 属性,提供了对页面和布局页之间共享的数据的类似属性访问。

可以对 Page 属性使用(添加)自己的属性:

  • Page.Title
  • Page.Version
  • Page.anythingyoulike

页面属性是非常有用的。例如,在内容文件中设置页面标题,并在布局文件中使用:

内容页:

@{
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>&nbsp;</text>}
<br />
}
</body>
</html>

11.Web Pages - 帮助器(Web 帮助器大大简化了 Web 开发和常见的编程任务)

可以使用存放在 .cshtml 文件中的 Razor 语法构建自己的帮助器,或者使用内建的 ASP.NET 帮助器。

WebGrid 帮助器

  var grid = new WebGrid(data);

  @grid.GetHtml();

Chart 帮助器

  Chart 帮助器显示的数据来源可以是数组、数据库或者文件。

  根据数组数据显示图表:

@{
var myChart = new Chart(width: , height: )
.AddTitle("Employees")
.AddSeries(chartType: "column",
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
yValues: new[] { "", "", "", "", "" })
.Write();
}

  根据数据库创建图表:               略.......

  根据 XML 数据创建图表:         略.......

WebMail 帮助器

WebImage 帮助器

第三方帮助器

————安装帮助器

12.Web Pages - 发布网站

............

asp.net简述WP开发模式的更多相关文章

  1. asp.net简述MVC开发模式

    详情请参考:http://www.runoob.com/aspnet/mvc-intro.html 1.MVC 是三种 ASP.NET 编程模式中的一种.MVC 是一种使用 MVC(Model Vie ...

  2. ASP.NET Web Froms开发模式中实现程序集的延迟加载

    延迟加载是一个很大的诱惑,可以达到一些比较好的效果,比如: 1.在实体框架中,由于关联数据的数量和使用时机是不确定的,通过延迟加载,仅在使用的时候去执行关联数据的查询操作,减少无谓的数据查询操作,可以 ...

  3. ASP.NET MVC——CodeFirst开发模式

    Entity Framework框架提供了几种开发模式,比如Database First,Model First,Code First.Database First是最老也是应用得最广泛的一种设计方式 ...

  4. ASP.Net的两种开发模式

    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...

  5. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  6. asp.net 的三种开发模式

    一, Web Pages 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种. 其他两种编程模式是 Web Forms 和 MVC(Model View Controller 模型 ...

  7. ASP.NET的三种开发模式

    前言 ASP.NET 是一个免费的Web开发框架,是由微软在.NET Framework框架中所提供的,或者说ASP.NET是开发Web应用程序的类库,封装在System.Web.dll 文件中.AS ...

  8. 《ASP.NET MVC4 WEB编程》学习笔记------Entity Framework的Database First、Model First和Code Only三种开发模式

    作者:张博出处:http://yilin.cnblogs.com Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发 ...

  9. Asp.net MVC 中 CodeFirst 开发模式实例

    昨天写的这篇博客因为下班时间到了忘记保存了,好郁闷,得重新写一遍.实习所在公司使用的是CodeFirst开发模式,最近开始参与到公司的项目里面来了,发现这个模式特别好用,建库建表改变字段属性添加删除字 ...

随机推荐

  1. Hibernate第四天——查询方式

    Hibernate入门最后一天第四天,我们进行查询方式的更进一步的细化: 先看一下大致的Hibernate的提供的查询的方式: 1.对象导航查询 2.OID查询 3.HQL查询 4.QBC查询 5.本 ...

  2. mysql-5.7.12-winx64 安装

    之前安装mysql时未做总结,换新电脑,补上安装记录,安装的时候,找了些网友的安装记录,发现好多坑 1.mysql-5.7.12-winx64.zip下载官方下载地址:http://dev.mysql ...

  3. IntelliJ IDEA教程之如何clean或者install Maven项目

    一.前言 Eclipse中如果我们想clean或者install工程,我们只需要右键工程,然后找到run->Maven install 或者run->Maven clean就可以了,但是I ...

  4. 【python】Selenium隐藏控制台解决办法

    一.起因: 使用selenium 驱动浏览器的时候,如果使用headless模式,会有dos窗口弹出,输出监听信息,有时不想看到,很是麻烦. 二.解决办法: 修改源码:Lib \ site-packa ...

  5. OpenGL学习笔记(6) 基础光照的计算方法

    这个笔记只是冯氏光照模型下漫反射光以及镜面光照的计算方式的笔记 基础光照 基础光照分为环境光,漫反射光,镜面光照 环境光 环境光是一个常量,表示在没有光源的情况下物体的光 漫反射光 漫反射光分量的计算 ...

  6. 使用Zabbix的SNMP trap监控类型监控设备的一个例子

    本文以监控绿盟设备为例. 1.登录被监控的设备的管理系统,配置snmptrap地址指向zabbix服务器或代理服务器. snmptrap地址也叫陷阱. 2.验证是否能在zabbix服务器或代理服务器上 ...

  7. UVA 816 Abbott's Revenge 紫书

    紫书的这道题, 作者说是很重要. 但看着题解好长, 加上那段时间有别的事, 磨了几天没有动手. 最后,这道题我打了五遍以上 ,有两次被BUG卡了,找了很久才找到. 思路紫书上有,就缺少输入和边界判断两 ...

  8. Leetcode_6. Zigzag convertion

    6. Zigzag convertion 对输入的字符串做锯齿形变换,并输出新的字符串,所谓zigzag变化如下图所示. 将"ABCDEFGHIJKL"做4行的锯齿变换,新的字符串 ...

  9. Django缓存配置和使用

    - 缓存 - 配置 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCAT ...

  10. Oracle VM VirtualBox 无法卸载 更新 和修复

    好久没更新Oracle VM VirtualBox 突然发现不能更新了 提示要某个msi文件,回想起来好像是被某个清理垃圾的软件清理掉了. 于是根据提示的版本号网上搜了种子又把安装包下载回来 在命令行 ...