为简单起见,新建一个空的web工程,再新建一个MVC的视图(.cshtml),因为WP是单页面模型,所以以后就在这个页面中进行试验。

Razor语法简介:

  1. 变量可用var或者其确切类型声明。

遍历foreach:

<ul>
@foreach (var i in Request.ServerVariables)
{
<li>@i</li>
}
</ul>

统一的布局:

将相似的页眉、页脚写在单独的布局文件中,需要时导入即可。

<body>
<!--导入页眉、页脚:RenderPage-->
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1>
<p>This is a paragraph</p>
@RenderPage("footer.cshtml")
</body> <!DOCTYPE html>
<html>
<body>
<!--页眉-->
<h1>This is header.</h1>
</body>
</html> <!DOCTYPE html>
<html>
<body>
<!--页脚-->
<h6>This is footer.</h6>
</body>
</html>

除了页眉、页脚之外,还可以引用部分相同的内容:

<body>
<!--布局网页,只是将框架做出来,而不是内容页面,内容部分用RenderBody顶替-->
<!--使用此布局的页面,用Layout导入。-->
<!--此时在内容页面,Layout指令会将指定的布局页导入到内容页面:就是把内容页当前成RenderBody,然后按照布局页的格式在RenderBody前后布局-->
<p>This is header text</p>
@RenderBody()
<p>© 2012 W3School. All rights reserved.</p>
</body> <body>
<!--内容页面-->
@{Layout = "body.cshtml";}
<h1>Welcome to W3Schools</h1>
</body>

防止代码泄露:

在 ASP.NET 中,名称以下划线开头的文件,例如"_header"无法从服务器中get到。因此可以将布局页面等文件以下划线"_"开头重命名。

隐藏敏感信息:

把信息数据保存在独立文件"_AppStart.cshtml"中(站点启动之前,执行其中代码,即启动代码和全局变量的初始化:只会在站点第一次启动时执行,即只执行一次)——_PageStart:在当前文件夹中如果有_PageStart.cshtml文件,那么每一次在访问这个文件夹中的任意页面时,都会先执行_PageStart页面中的代码。但也可在_PageStart页面中使用RunPage()规定在何处运行被访问的页面(而不是_PageStart)。

<body>
@WebMail.UserName
</body> <!--整个_AppStart页面-->
@{
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "username@example.com";
WebMail.Password = "your-password";
WebMail.From = "your-name-here@example.com";
}

WP常用的逻辑文件夹结构:

  • "Account" 文件夹包含登录和安全文件
  • "App_Data" 文件包含数据库和数据文件
  • "Shared" 文件夹包含通用文件(比如布局和样式文件)

绝对路径(磁盘上)的目录:例如C:\,相对路径(网站上)的目录是 /(斜杠)。ASP.NET 提供三种处理文件夹路径的工具:~ 操作符、Server.MapPath 方法以及 Href 方法。

<!--~:虚拟根目录-->
@RenderPage("~/View/_header.cshtml")
<!--Server.MapPath:参数(正确的相对路径)、返回(绝对路径:因为访问数据文件时,必须用完整的绝对路径)-->
@Server.MapPath("_header.cshtml") <!--或者写成~/View/_header.cshtml-->
<!--Href 把相对路径转换为浏览器能够理解的路径(浏览器无法理解 ~ 操作符;但是浏览器明明要认上一级目录"..",为啥不用这个)-->
@{ var imgPath = "~/Images/2.png";}
<img src="@Href(imgPath)" />
<img src="@imgPath" />

读取输入:

@{
var message = "";
if(IsPost)
{
message = Request["message"];
}
}
@message
<form method="post">
<input type="text" name="message" />
<input type="submit" value="Submit" />
</form>

所有页面使用同一个对象Page,有方法有属性:

添加自定义的属性:

@{ Page.Title = "Index Page";}
@Page.Title<br />
@RenderPage("_header.cshtml") <!--_header页面-->
<body>
@Page.Title
</body>

处理文本文件:

存储数据的文本文件通常称为平面文件(flat files)。常见的文本文件格式是 txt、xml 以及 csv。下面读取一个文本文件:

新建一个App_Data文件夹,再新建"Persons.txt":

@{
//var dataFile = Server.MapPath("~/App_Data/Persons.txt");
//var dataFile = Server.MapPath("~/App_Data/Persons.csv");
var dataFile = Server.MapPath("~/App_Data/Persons.xml");
Array userData = File.ReadAllLines(dataFile);
}
<h1>Reading Data from a File</h1>
@foreach (string dataLine in userData)
{
foreach (string dataItem in dataLine.Split(','))
{@dataItem <text> </text>}
<br />
}

ASP.NET —— Web Pages的更多相关文章

  1. 如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]

    如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites] 一.布局页面介绍[Abo ...

  2. Displaying Data in a Chart with ASP.NET Web Pages (Razor)

    This article explains how to use a chart to display data in an ASP.NET Web Pages (Razor) website by ...

  3. 五张图概括 什么是 ASP 、 ASP.NET (Web Pages,Web Forms ,MVC )

    当你看懂下面这五张图,我相信你对于学习.NET Web开发路线将不陌生!                                               来源: http://www.w3 ...

  4. ASP.NET Web Pages 的冲突版本问题

    随着VS版本和.NET MVC版本.EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题! 最近有一个项目是用.NET MVC3 ...

  5. ASP.NET Web Pages:C# 和 VB 实例

    ylbtech-.Net-ASP.NET Web Pages:C# 和 VB 实例 1.返回顶部 1. ASP.NET Web Pages - C# 和 VB 实例 通过 C# 和 Visual Ba ...

  6. ASP.NET Web Pages:发布网站

    ylbtech-.Net-ASP.NET Web Pages:发布网站 1.返回顶部 1. ASP.NET Web Pages - 发布网站 学习如何在不使用 WebMatrix 的情况下发布 Web ...

  7. ASP.NET Web Pages:PHP

    ylbtech-.Net-ASP.NET Web Pages:PHP 1.返回顶部 1. ASP.NET Web Pages - PHP PHP 开发人员请注意,Web Pages 可以用 PHP 编 ...

  8. ASP.NET Web Pages:WebMail 帮助器

    ylbtech-.Net-ASP.NET Web Pages:WebMail 帮助器 1.返回顶部 1. ASP.NET Web Pages - WebMail 帮助器 WebMail 帮助器 - 众 ...

  9. ASP.NET Web Pages:Chart 帮助器

    ylbtech-.Net-ASP.NET Web Pages:Chart 帮助器 1.返回顶部 1. ASP.NET Web Pages - Chart 帮助器 Chart 帮助器 - 众多有用的 A ...

  10. ASP.NET Web Pages:WebGrid 帮助器

    ylbtech-.Net-ASP.NET Web Pages:WebGrid 帮助器 1.返回顶部 1. ASP.NET Web Pages - WebGrid 帮助器 WebGrid - 众多有用的 ...

随机推荐

  1. eos中BM与有BM特色的去中心化。区块链世界,白皮书为共识,代码为法律。

    比特币挖矿是谁算力高,谁更容易挖到新的比特币,而BM认为这太浪费资源了,于是设计了DPoS:在DPoS系统里,大家不再挖矿.而是指定几个人负责记账,不叫矿工,而叫见证人.比特股里开始是101人,EOS ...

  2. CSS 选择器权重计算规则

    其实,CSS有自己的优先级计算公式,而不仅仅是行间>内部>外部样式:ID>class>元素. 一.样式类型 1.行间 <h1 style="font-size: ...

  3. [转载]ADO.NET中的五个主要对象

    Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...

  4. [转载]FlipClock.js时钟,计数,3D翻转插件

    1.FlipClock.js能够自动定义计数,时钟的翻牌效果,调用简单,下面简单记录下用法 2.官网地址:http://www.flipclockjs.com/ 3.调用2个文件 <link h ...

  5. Django之连接远程mysql数据库

    1.创建Django项目(test) 进入配置文件settings.py 192.168.83.129:所需要远程连接数据库的ip地址 2.进入到远程连接的主机,修改/etc/mysql/mysql. ...

  6. Android NDK MediaCodec在ijkplayer中的实践

    https://www.jianshu.com/p/41d3147a5e07 从API 21(Android 5.0)开始Android提供C层的NDK MediaCodec的接口. Java Med ...

  7. centos系统swap设置 查看swap分区的方法

    交换分区swap,意思是“交换”.“实物交易”,它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefi ...

  8. Docker学习笔记之docker volume 容器卷的那些事(二)

    预览目录 更改目录拥有者 Data Container 切换用户 参考文章 0x00 概述 如果你读了docker volume 容器卷的那些事(一),我想应该不会遇到下面这些问题的,毕竟是具有指导意 ...

  9. js条件判断if-else和switch、循环for和while

    条件判断和循环都使用{ }将代码块括起来,如果代码块只有一行,则可省略{ }. 在循环中,continue表示跳过当前循环继续进行下一次循环,break表示跳出整个循环. 1.条件判断if-else, ...

  10. sentos7为例添加python3和python2共存

    转载:https://www.cnblogs.com/JahanGu/p/7452527.html 1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命 ...