zoukankan      html  css  js  c++  java
  • Web Pages razor 学习

    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  
  • 相关阅读:
    游戏编程模式--原型模式
    游戏编程模式--观察者模式
    游戏编程模式--享元模式
    游戏编程模式--命令模式
    mybatis的线程安全
    开发遇到的问题
    spring的ThreadLocal解决线程安全
    i++
    jvm内存初步了解
    注解@RequestMapping,@RequestBody
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/4195504.html
Copyright © 2011-2022 走看看