C# Razor语法规则

  • 单独一个变量直接使用 @a 的形式,无需加分号,一般是直接使用已有变量,注意在使用 html 标签时,要和 razor 表达式加一个空格。
//以下都是错误的@int a=0      //不能有空格
//@int a=0,@int 会被识别为Razor表达式, a=0识别为字符,并且@int会报错@int a = 0//不能有空格
<p>有几个人@a</a>
//此处不会被识别,已经变成字符了
<h1 class="display-4">Welcome @a;</h1>
// 输入的是@a; 只会识别@a,而;将会变成字符
  • Razor 代码封装于 @{ ... } 中            --多行代码需要包含在 @{} 中
@{ int a = 0}        //报错,在@{}中要按正常C#代码来写,语句后要加分号
  • 封装于 @{ ... } 中,Razor的变量是全局的,在一个位置声明一个变量,后面都可以使用。
  • 如果变量在 if/for{}  等处声明则其为局部变量。对于 if/for 这些函数来说,可以不包含在@{}内,直接使用 @if/@for 这种形式
<!-- 多行语句代码块 1 -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}

<!-- 多行语句代码块 2 -->
<ul>
@for (int i = 0; i < 100; i++)
   {
    i += 1;
    <li>@i</li>
   }
  • 行内表达式(变量和函数)以 @ 开头     --单独一条表达式如赋值、输出,只需要在开头加上@
<!-- 单行代码块 -->
@{ var myMessage =    "Hello World"; }

<!-- 行内表达式或变量 -->
<p>The value of myMessage is: @myMessage</p>
  • 代码语句以分号结尾                           --跟平常写代码一样,语法格式一致
  • 字符串由引号包围
  • C# 代码对大小写敏感,Razor 同样

提示:
@{}中声明的变量是全局性的。
@var net = "从入门到放弃"; 是错误的写法,因为单行表达式不能有空格。请使用@{   var net = "从入门到放弃";}
Razor代码可以放在HTML标签的任何位置,与标签结合一起,向用户呈现内容。
在多行代码块@{}中,如果只有c#代码语句,则无需在每一条语句前面加@,如知识小结的第一条。
多行语句块@{}中可以包含HTML标签,如果需要在HTML标签中使用代码,只需在某一部位加上 “@语句”格式的语句。
在"多行语句代码块 2"的示例中,直接使用了"@for{}",{}里面包含多行代码。在这里,for函数"for{}"里可以加入多行代码,与"@{}"一致。
除for函数外,if , if...else... , while等函数也能包含多行代码。
较为复杂的情况:

<div class="container-fluid col-10">
                @{
                    if (Model != null)
                    {
                        if (Model.Code == 200)
                        {
                            var a = (AccurateBasicModel)Model.Data;
                            if (a.direction != null)
                            {
                                <p>图像方向 @a.direction</p>
                            }
                            <p>识别出的文字条数 @a.words_result_num</p>
                            int i = 1;
                            <table class="table table-hover table-responsive table-bordered">
                                <tr><td>编号</td><td>识别文字</td><td>行置信度平均值</td><td>行置信度方差</td><td>行置信度最小值</td></tr>
                                @foreach (var item in a.words_result)
                                {
                                    <tr>
                                        <td>@i</td>
                                        <td> @item.words</td>
                                        @{
                                            if (item.probability != null)
                                            {
                                                <td>@item.probability.average</td>
                                                <td>@item.probability.variance</td>
                                                <td>@item.probability.min</td>
                                            }
                                            else
                                            {
                                                <td>未设置</td>
                                                <td>未设置</td>
                                                <td>未设置</td>
                                            }
                                        }
                                        @{ i++;}
                                    </tr>
                                }
                            </table>
                        }
                        else
                        {
                            <h3>识别错误,错误详情:</h3>
                            <p>
                                @Model.Data.ToString()
                            </p>
                        }
                    }
                    else
                    {
                        <h2 id="plaseInput">请上传图片</h2>
                    }
                }
            </div>
        </div>

到此这篇关于C# Razor语法规则的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Asp.net MVC中Razor常见的问题与解决方法总结

    前言 最近在学习Asp.net MVC Razor,在使用中遇到了不少的问题,所以想着总结下来,没有经验的童鞋就是这样磕磕碰碰出来的经验.话不多说,来一起看看详细的介绍: 一.Datatype的错误提示消息无法自定义 这也许是Asp.net MVC的一个Bug.ViewModel中定义了DataType为Date字段: [Required(ErrorMessage = "Birthday must be input!")] [DataType(DataType.Date, ErrorM

  • asp.net core razor自定义taghelper的方法

    又一个新的名词(taghelper),通过taghelper是可以操作html标签.条件输出.更是自由添加内外元素.当然也内置了挺多的asp-开头的taghelper. 下面文章中也简单的带大家实现一个taghelper; 创建自定义html元素 创建一个类ButtonTagHelper tagName为标签名称,下面创建一个button标签 using Microsoft.AspNetCore.Razor.TagHelpers; namespace Ctrl.Core.Tag.Controls

  • 详细分析ASP.NET Razor之C# 变量

    变量 变量是用来存储数据的. 一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符. 一个变量可以是一个指定的类型,表示它所存储的数据类型.string 变量存储字符串值("Welcome to RUNOOB.COM"),integer 变量存储数字值(103),date 变量存储日期值,等等. 变量使用 var 关键字声明,或通过使用类型(如果您想声明类型)声明,但是 ASP.NET 通常能自动确定数据类型. // Using the var keyword: var gr

  • ASP.NET MVC4 Razor模板简易分页效果

    一.无数据提交 第一步,建立一个 Controller命名为PageIndex的空控制器,自定义一个方法如下: public ActionResult PageIndex(string action, string controller, int currentPage, int pageCount) { //int count = db.Product.Count(); ViewBag.PageCount = pageCount;//从操作中获取总数据页数将传入分页视图页面 ViewBag.C

  • ASP.NET Core Razor 页面路由详解

    在服务器端 Web 应用程序框架中,其中非常重要的设计是开发人员如何将URL与服务器上的资源进行匹配,以便正确的处理请求.最简单的方法是将 URL 映射到磁盘上的物理文件,在 Razor 页面框架中,ASP.NET团队就是这样实现的. 关于 Razor 页面框架如何将 URL 与文件相匹配,有一些规则您必须了解,以及如何根据需要自定义规则改变输出的结果.如果您将 Razor 页面与 Web Form 框架进行比较,您还需要了解取代的 Ur l参数以及在URL中传递数据的机制. 规则一,Razor

  • ASP.NET Core 2.0中Razor页面禁用防伪令牌验证

    在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站:支持跨平台开发,可以部署到Windows,Unix和Mac操作系统. 跨站点请求伪造(也称为XSRF或CSRF)是对Web托管应用程序的攻击,因为恶意网站可能会影响客户端浏览器和浏览器信任网站之间的交互.这种攻击是完全有可能的,因为Web浏览器会自动在每一个请求中发送某些身份验证令牌到请求网站.这种

  • 详解ASP.NET MVC3:Razor的@:和语法

    这是我正在写的博文系列中的另一篇,涵盖ASP.NET MVC 3的一些新功能: http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx Razor中的布局10月22日) 用Razor实现服务器端注释(11月12日) Razor的@:和<syntax>语法(今天) 本文将讨论新版Razor里视图引擎中支持的两个有用的语法功能:@:和<t

  • 详解ASP.NET Razor 语法

    Razor 同时支持 C# (C sharp) 和 VB (Visual Basic). 主要的 Razor C# 语法规则 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 @ 开头 代码语句用分号结束 变量使用 var 关键字声明 字符串用引号括起来 C# 代码区分大小写 C# 文件的扩展名是 .cshtml C# 实例 <!-- Single statement block --> @{ var myMessage = "Hello World&quo

  • ASP.NET MVC学习教程之Razor语法

    前言 ASP.NET MVC 3配有一个新的名为"Razor"的视图引擎选项(除了已有的.aspx视图引擎).Razor尽量减少编写一个视图模板需要敲入的字符数,实现快速流畅的编程工作流.与大部分模板的语法不同,你不必在HTML中为了明确地标记出服务模块的开始和结束而中断编程.Razor解析器足够聪明,能从你的代码中推断出来.这使其简洁,富有表现力的语法输入干净,快速,有趣.下面话不多说了,来一起看看详细的介绍吧 1. 表达式 表达式必须跟在"@"符号之后, 2.代

  • C# Razor语法规则

    单独一个变量直接使用 @a 的形式,无需加分号,一般是直接使用已有变量,注意在使用 html 标签时,要和 razor 表达式加一个空格. //以下都是错误的@int a=0 //不能有空格 //@int a=0,@int 会被识别为Razor表达式, a=0识别为字符,并且@int会报错@int a = 0//不能有空格 <p>有几个人@a</a> //此处不会被识别,已经变成字符了 <h1 class="display-4">Welcome @a

  • ASP.NET中的Razor语法简介

    目录 一.Razor 语法 1. Razor C# 语法规则 2.Razor的作用域 3.Razor和Html混合编写 4.变量 5.数据类型 6.转换数据类型(string类型才能转) 7.循环 8.数组 9.逻辑条件 二.Razor引擎 1.布局(Layout)(@RenderBody()方法) 2.页面(@RenderPage()方法) 3.Section区域(@RenderSection()) 三.Razor 帮助器 自定义Helper Razor 不是一种编程语言.它是服务器端的标记语

  • 教你如何在 Javascript 文件里使用 .Net MVC Razor 语法

    相信大家都试过在一个 View 里嵌套使用 javascript,这时就可以直接使用 Razor 语法以调用 .NET 的一些方法.如以下代码嵌套在一个 Razor 的 View 里: <script> var currDate = '@DateTime.Now'; //直接调用.NET的方法 console.log(currDate) </script> 但另一种情况是,如果我想在一个独立的 JS 文件里使用 Razor,那以上的方法可行不通,因为MVC不会直接解释JS文件,只有

  • JavaScript声明变量名的语法规则

    一.语法规则 1.变量必须使用字母.下划线(_)或者美元符($)开始. 2.然后可以使用任意多个英文字母.数字.下划线(_)或者美元符($)组成. 3.不能使用JS关键词与保留字. 二.示例 var score; score="100"; 三.注意 1.JS区分大小写.如变量score与Score是不一样的,相当两个变量. 2.变量虽然可以不声明,直接使用,但不规范,会涉及变量名提升等问题. 以上所述就是本文的全部内容了,希望大家能够喜欢.

  • 超详细的JavaScript基本语法规则

    目录 01 JavaScript (简称:js) js分三个部分: JavaScript是什么? js的代码可以分三个地方写: 02 操作符 操作符:一些符号-----用来计算 关系运算符: 关系运算表达式: 逻辑运算符: 逻辑运算表达式: 03 JS变量 变量名的注意问题-变量名的命名: 04 JS变量作用 05 JS变量的交换 使用第三方的变量进行交换 第二种方式交换:一般适用于数字的交换 06 注释 注释的方式: 07 JS的数据类型 值类型(基本类型): 引用数据类型: 08 JS的数字

  • 教你快速学会JPA中所有findBy语法规则

    目录 快速学会JPA中所有findBy语法规则 1.findBy findAllBy的区别 2.JPA中支持的关键词 JPA findBy 语法总结 1.JPA同时查询两个属性 2.表格汇总 3.Spring Data JPA框架在进行方法名解析时 4.JPA的NamedQueries 5.JPQL查询 快速学会JPA中所有findBy语法规则 1.findBy findAllBy的区别 它们之间没有区别,它们将执行完全相同的查询,当从方法名称派生查询时,Spring Data会忽略All部分.

  • avaScript基础学习-基本的语法规则

    目录 一.运算符 二.分支语句 三.循环语句 四.异常的捕获与处理 五.js中的this关键字 六.let与const定义变量使用规则 七.js中的void链接 八.异步编程setTimeout 九.函数闭包 一.运算符 js中的+-*/运算与c语言较为相似,简写方式也类似 ++.--.+=.%=等运算规则也相同 在js中===代表绝对等于(值与类型都相同才算相同) !==(不绝对等于)值和类型有一个不相同或者都不相同为真 js中还支持三目运算符 a>b?'a大于b':'b大于a' 二.分支语句

  • Jenkins定时构建语法规则及时间设置

    目录 Jenkins定时构建时间设置 官方说明翻译 示例 Jenkins定时构建时间设置 Jenkins时区设置为北京时间 打开 [系统管理]->[脚本命令行]运行下面的命令 System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai') 查看时间: [root@120jenkins ~]# dateSat Apr 25 13:55:51 CST 2020 官方说明翻译 MINUTE HOUR D

随机推荐