C# Razor语法规则

作者:痴者工良 时间:2021-07-27 23:53:43 

  • 单独一个变量直接使用 @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标签中使用代码,只需在某一部位加上 &ldquo;@语句&rdquo;格式的语句。
在"多行语句代码块 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>

来源:https://www.cnblogs.com/whuanle/p/10297606.html

标签:C#,Razor,语法,规则
0
投稿

猜你喜欢

  • C# StringBuilder和string

    2021-08-20 00:21:20
  • 基于Luhn算法的银行卡校验规则

    2022-06-05 00:56:15
  • 为什么Java项目中别用!=null做判空

    2023-12-19 20:26:13
  • Java新手环境搭建 JDK8安装配置教程

    2023-11-25 17:23:10
  • 三种Java自定义DNS解析器方法与实践

    2022-01-13 10:12:11
  • C#中的char、string和StringBuilder的使用详解

    2022-12-12 12:59:50
  • Java排序算法总结之希尔排序

    2022-07-16 13:19:11
  • SpringBoot实现Thymeleaf验证码生成

    2021-11-25 08:06:38
  • SpringAOP如何获取方法参数上的注解

    2021-09-19 23:22:18
  • Android Service启动过程完整分析

    2021-11-25 11:02:44
  • Entity Framework主从表的增删改

    2023-10-05 18:56:27
  • 实例分析java对象中浅克隆和深克隆

    2023-01-07 07:48:20
  • java中不定长参数的实例用法

    2021-06-17 02:49:35
  • C#添加、读取Word脚注尾注的方法

    2022-12-24 02:12:22
  • C#中this指针的用法示例

    2021-07-21 14:12:24
  • Visual Studio 2019 清理空行问题(非正则表达式)

    2023-10-27 16:05:22
  • C# FileStream实现多线程断点续传

    2022-06-19 06:50:56
  • java 串口通信实现流程示例

    2023-02-08 01:10:35
  • C#实现窗体全屏的两种方法

    2021-10-06 19:14:04
  • 简单阐述一下Java集合的概要

    2023-08-23 19:49:45
  • asp之家 软件编程 m.aspxhome.com