1. Web Pages razor

Web Pages 是三种 ASP.NET 编程模型中的一种,用于创建 ASP.NET 网站和 web 应用程序。

其他两种编程模型是 Web Forms 和 MVC (Model, View, Controller)。

Web Pages 是最简单的 ASP.NET 网页开发编程模型。它提供了一种简单的方法将 HTML、CSS、JavaScript 以及服务器代码结合起来:

  • 易于学习、阅读和使用
  • 围绕单一网页进行构建
  • 类似 PHP 和 ASP
  • 服务器脚本使用 Visual Basic 或 C#
  • 对 HTML、CSS、JavaScript 的完全控制

Web Pages 通过可编程的 Web Helpers 进行扩展,包括数据库、视频、图像、社交网络等等。

2. 学习实践

1. 开发环境vs2010 ,sql server 2012

2. 项目文件布局:

几个名称的解释:

Web 启动之前:_AppStart

大多数服务器端代码都是在独立的网页中编写的。例如,假如网页包含输入表单,那么该网页通常包含用于读取数据的服务器代码。

不过,通过在站点根目录中创建名为 _AppStart 的页面,您能够在站点启动前就已执行启动代码(startup code)。假如该页面存在,

ASP.NET 会在站点内的任何页面被请求之前首先运行这个页面。

通常 _AppStart 用于启动代码和全局值的初始化,比如计数器和全局名称。

注释 1:_AppStart 的文件扩展名应与网页相同,比如 _AppStart.cshtml。

注释 2:_AppStart 有下划线前缀。正因如此,用户才无法直接查看该文件。

每张页面之前:_PageStart

就像在站点启动前运行 _AppStart 那样,您能够在每个文件夹中的任意页面之前运行代码。

对于 web 中的每个文件夹,您能够添加名为 _PageStart 的文件。

通常 _PageStart 用于设置文件夹中所有页面的布局文件,或者在运行页面之前检查用户登录。

流程

当请求到来时,ASP.NET 检查 _AppStart 是否存在。如果存在,并且这是对站点的第一次请求,则运行 _AppStart。

然后 ASP.NET 检查 _PageStart 是否存在。如果存在,则运行 _PageStart,在被请求的页面之前。

如果您在 _PageStart 内部引用了对 RunPage() 的调用,那么您可以规定在何处运行被请求的页面。否则,_PageStart 在被请求页面之前运行。

代码部分解释:

Login.cshtml

@{
// LayoutPage = "layout.cshtml";
this.Layout = "layout.cshtml";  使用模板布局 
@:dalong
}
@{

var database = Database.Open("database");
var data = database.Query("select top 100 PSNName, CorpName from myperson2 ");   查询数据库
var grid = new WebGrid(data);  数据绑定显示
foreach (var item in data)
{
<li>the age is :@item.PSNName
</li>
<li>the name is : @item.CorpName
</li>
}
}
@section dalong33 {    节点布局测试
<div id="grid">
@grid.GetHtml()
</div>
}
@{

var username = string.Empty;

username = Request["username"];   请求参数的获取
if (username != null)
{
<form action="login" method="post">
<label for="username">
用户名</label><input type=text name="username" value=@username /><br>
<label for="pass">
密 码</label><input type="text" name="pass" /><br>
</form>
}
}

layout.cshtml

<! doctype html>
<html>

<head>

</head>

<body>

@RenderBody()

@RenderSection("dalong33",false);   节点布局(false 节点不是必须的)
</body>

</html>

_AppStart.cshtml    应用启动执行的

@{

Context.Response.Write("<script>alert('dalong start app')</script>");

}

_PageStart.cshtml  每个页面执行的

@{

//Output.Write();

Context.Response.Write("<script>alert('app')</script>");
}

测试的界面比较简单,不用贴图了。

注意对于所需的dll 的引用

  • Microsoft.Web.Infrastructure.dll
  • NuGet.Core.dll
  • System.Web.Helpers.dll
  • System.Web.Razor.dll
  • System.Web.WebPages.Administration.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll
  • WebMatrix.Data.dll
  • WebMatrix.WebData

Web Pages razor 学习的更多相关文章

  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. Customizing Site-Wide Behavior for ASP.NET Web Pages (Razor) Sites

    Customizing Site-Wide Behavior for ASP.NET Web Pages (Razor) Sites By Tom FitzMacken|February 17, 20 ...

  4. ASP.NET Web Pages (Razor) FAQ

    ASP.NET Web Pages (Razor) FAQ By Tom FitzMacken|February 7, 2014 Print   This article lists some fre ...

  5. ASP.NET Web Pages (Razor) API Quick Reference

    ASP.NET Web Pages (Razor) API Quick Reference By Tom FitzMacken|February 10, 2014 Print This page co ...

  6. ASP.NET Web Pages:简介

    ylbtech-.Net-ASP.NET Web Pages:简介 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种 ...

  7. ASP.NET Web Pages - 教程

    ASP.NET Web Pages - 教程 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种不同的开发模式:Web ...

  8. ASP.NET Web Pages:Razor

    ylbtech-.Net-ASP.NET Web Pages:Razor 1.返回顶部 1. ASP.NET Web Pages - 添加 Razor 代码 在本教程中,我们将使用 C# 和 Visu ...

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

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

随机推荐

  1. Apache 的启动/重启/停止

    Task: Start Apache 2 Server /启动apache服务 # /etc/init.d/apache2 startor$ sudo /etc/init.d/apache2 star ...

  2. Postfix之mail.cf

    1.# 2. 3.vi /etc/postfix/main.cf #vi编辑postfix配置文件 4.#找到如下配置项酌情修改 5.###### 6.myhostname =  mail.yourd ...

  3. CentOS 7.0禁用iptables防火墙

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. firewall: systemctl start firewalld.service#启动firewal ...

  4. iOS-TCP/IP、Http、Socket的区别

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  5. lhgdialog 与后台交互的对话框

    官网:http://www.lhgdialog.com/ 1. 调用打开dialog的按钮 <span class="txtdec fs10 open"> <a ...

  6. Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名

    http://www.cnblogs.com/buffer/archive/2011/08/17/2143514.html Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活 ...

  7. jQuery关于Select的操作

    jQuery获取Select选择的Text和Value: 1. var checkText=jQuery("#select_id").find("option:selec ...

  8. centos 主从复制

    1.主服务器rpm安装mysql 2.复制一台服务器叫slave(从服务器),一会儿要用 3.在主服务器,修改my.cnf文件 找到server-id,在它的下面加上 binlog-do-db = h ...

  9. 程序员MM的自白:磨人小妖精之安卓碎片化

    文/腾讯优测 章婉霞 除了crash问题,Android平台的碎片化越来越受到移动开发的关注,且不谈支持Android系统的移动设备早已过万款,屏幕.品牌以及传感器等方面的碎片化问题也困扰着开发者. ...

  10. [转载]oracle 11g不能导出空表的多种解决方法

    原文地址:11g不能导出空表的多种解决方法">oracle 11g不能导出空表的多种解决方法作者:Anlin_Yang ORACLE 11g 用exp命令导出库文件备份时,发现只能导出 ...