zoukankan      html  css  js  c++  java
  • asp.net MVC Razor 语法(1)

    Razor 不是编程语言。它是服务器端标记语言。

    什么是 Razor ?

    Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。

    当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。

    Razor 基于 ASP.NET,它为 web 应用程序的创建而设计。它拥有传统 ASP.NET 标记的能力,但更易使用,也更易学习。

    代码示例:

    <ul>
    @for (int i = 0; i < 10; i++) {
    <li>@i</li>
    }
    </ul>
    

    C# 的主要 Razor 语法规则

    • Razor 代码封装于 @{ ... } 中
    • 行内表达式(变量和函数)以 @ 开头
    • 代码语句以分号结尾
    • 字符串由引号包围
    • C# 代码对大小写敏感
    • C# 文件的扩展名是 .cshtml
    C# 实例
    <!-- 单行代码块 -->
    @{ var myMessage =    "Hello World"; }
    
    <!-- 行内表达式或变量 -->
    <p>The value of myMessage is: @myMessage</p> 
    
    <!-- 多行语句代码块 -->
    @{
    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>

    如何工作?

    Razor 是一种简单的编程语法,用于在网页中嵌入服务器端代码。

    Razor 语法基于 ASP.NET 框架,该框架是微软的 .NET 框架特别为 web 应用程序开发而设计的组成部分。

    Razor 语法赋予您所有 ASP.NET 的能力,但是使用了简化过的语法,如果您是初学者,则更容易学习,如果您是专家,则更有利于提高生产力。

    Razor 网页可被描述为带有两种内容的 HTML 页面:HTML 内容和 Razor 代码。

    当服务器读取这种页面后,在将 HTML 页面发送到浏览器之前,会首先运行 Razor 代码。这些在服务器上执行的代码能够完成浏览器中无法完成的任务,比如访问服务器数据库。服务器代码能够在页面被发送到浏览器之前创建动态的 HTML 内容。从浏览器来看的话,由服务器代码生成的 HTML 与静态 HTML 内容没有区别。

    使用 Razor 语法的 ASP.NET 网页拥有特殊的文件扩展名 cshtml(使用 C# 的 Razor 语法)或者 vbhtml(使用 VB 的 Razor)。

    与对象打交道

    服务器代码常常涉及对象。

    "Date" 对象是典型的 ASP.NET 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。

    对象可以拥有能够执行的方法。数据库记录可以提供“保存”方法,图像对象可以有“旋转”方法,电子邮件对象可以提供“发送”方法,以此类推。

    对象也可以有描述其特点的属性。数据库记录可以有 FirstName 和 LastName 属性。

    ASP.NET Date 对象拥有 Now 属性(写为 Date.Now),Now 属性有 Day 属性(写为 Date.Now.Day)。下面的例子展示如何访问 Date 对象的某些属性:

    <table border="1">
    <tr>
    <th width="100px">Name</th>
    <td width="100px">Value</td>
    </tr>
    <tr>
    <td>Day</td><td>@DateTime.Now.Day</td>
    </tr>
    <tr>
    <td>Hour</td><td>@DateTime.Now.Hour</td>
    </tr>
    <tr>
    <td>Minute</td><td>@DateTime.Now.Minute</td>
    </tr>
    <tr>
    <td>Second</td><td>@DateTime.Now.Second</td>
    </tr>
    </td>
    </table>
    

    If 和 Else 条件

    动态网页的重要特性是基于条件来确定执行的动作。

    实现这一点的常用方法是使用 if ... else 语句:

    @{
    var txt = "";
    if(DateTime.Now.Hour > 12)
      {txt = "Good Evening";}
    else
      {txt = "Good Morning";}
    }
    <html>
    <body>
    <p>The message is @txt</p>
    </body>
    </html>
    

    读取用户输入

    动态网页的另一个重要特性是读取用户的输入。

    由 Request[] 函数读取输入,并由 IsPost 条件进行测试:

    @{
    var totalMessage = "";
    if(IsPost)
        {
        var num1 = Request["text1"];
        var num2 = Request["text2"];
        var total = num1.AsInt() + num2.AsInt();
        totalMessage = "Total = " + total;
        }
    }
    <html>
    <body style="background-color: beige; font-family: Verdana, Arial;">
    <form action="" method="post">
    <p><label for="text1">First Number:</label><br>
    <input type="text" name="text1" /></p>
    <p><label for="text2">Second Number:</label><br>
    <input type="text" name="text2" /></p>
    <p><input type="submit" value=" Add " /></p>
    </form>
    <p>@totalMessage</p>
    </body>
    </html>
    
  • 相关阅读:
    解决 EDAS:Upload failed: The right margin is 0.535 in on page 1 问题
    解决 ImportError: No module named _internal
    静态页面如何实现 include 引入公用代码
    一个用 js 实现点阵图的编辑器演示
    从 art-template 模版维护到动态加载的思考
    Atom 备份神器 —— Sync Settings
    clicaptcha中文点击验证码开发经验总结
    通过 imagick 让 PHP 生成 PSD 文件缩略图
    让视频压制更简单
    Medoo个人修改版
  • 原文地址:https://www.cnblogs.com/liuruitao/p/3966703.html
Copyright © 2011-2022 走看看