知识小结:C# 的主要 Razor 语法规则

  • 单独一个变量直接使用 @a 的形式,无需加分号,一般是直接使用已有变量,注意在使用 html 标签时,要和 razor 表达式加一个空格。

    //以下都是错误的@int a=      //不能有空格
    //@int a=0,@int 会被识别为Razor表达式, a=0识别为字符,并且@int会报错@int a = //不能有空格
    <p>有几个人@a</a>
    //此处不会被识别,已经变成字符了
    <h1 class="display-4">Welcome @a;</h1>
    // 输入的是@a; 只会识别@a,而;将会变成字符
  • Razor 代码封装于 @{ ... } 中            --多行代码需要包含在 @{}
  • @{ int a = }        //报错,在@{}中要按正常C#代码来写,语句后要加分号
  • 封装于 @{ ... } 中,Razor的变量是全局的,在一个位置声明一个变量,后面都可以使用。
  • 如果变量在 if/for{}  等处声明则其为局部变量。对于 if/for 这些函数来说,可以不包含在@{}内,直接使用 @if/@for 这种形式
<!-- 多行语句代码块  -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
} <!-- 多行语句代码块 -->
<ul>
@for (int i = ; i < ; i++)
{
i += ;
<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 == )
{
var a = (AccurateBasicModel)Model.Data;
if (a.direction != null)
{
<p>图像方向 @a.direction</p>
}
<p>识别出的文字条数 @a.words_result_num</p>
int i = ;
<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 小笔记和某些细节的更多相关文章

  1. 转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

    http://www.bubuko.com/infodetail-382485.html 标签:des   class   style   代码   html   使用   问题   文件   数据 ...

  2. 小笔记:Timer定时间隔时间操作

    小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...

  3. 关于 linux中TCP数据包(SKB)序列号的小笔记

    关于  SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq  一直没有找到seq 不清楚在那里初始化了,就 ...

  4. Linux下postgres9.4 版本的单机版安装小笔记

    1.添加RPMyum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redha ...

  5. 深入剖析Nginx一点小笔记

    前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...

  6. Android小项目之八 界面细节

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  7. Stl源码剖析读书笔记之Alloc细节

    阅读基础: Foo *pf = new Foo; 执行了两个步骤: 1)::operator new 向系统申请内存. 2) 调用Foo::Foo()构造函数构造实例.  ==> 申请内存,构造 ...

  8. Git-rebase 小笔记

    转自: https://blog.yorkxin.org/posts/2011/07/29/git-rebase/ 最近刚好有个机会整理很乱的Git commit tree,终于搞懂了rebase 的 ...

  9. css通用小笔记03——浏览器窗口变小 div错位的问题

    我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充. 一.使用min-width属性: 我们先看看下面这段代 ...

随机推荐

  1. Struts1原理解析

    1.浏览器发送http请求->web服务器. 2.web服务器将 请求进行解析. 3.web服务器解析后将请求转发给ActionServelet(总队长). 3.查询struts-config. ...

  2. rails命令行命令

    x.指定端口启动rails项目 ruby script/server webrick -p 3000 ------------------------------------------------- ...

  3. CentOS7下Rsync+sersync实现数据实时同步

    近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...

  4. angular环境搭建时的坑

    安装angular环境踩过一些坑,最终还是把工程跑起来了,这里描述一下我的步骤,不排除有些步骤是多余的,希望能对遇到同样问题的小伙伴有帮助. 下载最新版node.js. 安装node,安装过程一路点下 ...

  5. SQL Serever学习15——进阶

    特别说明:在sqlserver2014中,不区分大小写,也就是说,SQL是大小写不敏感的 数据库模型3类: 层次模型 网状模型 关系模型 关系型数据库语言3种: DDL数据定义语言 CREATE(创建 ...

  6. php中类和对象的操作

    在类中用$this指代对象本身. 用self::指代类本身. $p1 = new Person('michael');//向Person类的构造函数__construct中传名字 echo($p1-& ...

  7. 三:SpringCloud-Ribbon

    六:Ribbon负载均衡 1. 概述 1.1 是什么 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套==客户端 负载均衡==的工具. 简单的说,Ribbon是Net ...

  8. linux centOs中安装好数据库,客户端用plsql连接oracle

    原创作品,转载请在文章显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10030375.html 首先,回顾上篇 CenOs7安装oracle图文详细过 ...

  9. Java 基础:数组

    一.数组声明: int[] x; int x[]; 在Java中一般使用前者,机把int[]看做一个类型,C++中只能后者 二.数组初始化: 直接提供值: int[] x = {1, 3, 4}; i ...

  10. js 防止连续点击

    简称 js防连点 var flag = true; $(".yzm>span").click(function(){ if(!flag){       return fals ...