zoukankan      html  css  js  c++  java
  • C# Razor 小笔记和某些细节

    知识小结: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>
  • 相关阅读:
    iOS中Zbar二维码扫描的使用
    SOJ 1135. 飞跃原野
    SOJ 1048.Inverso
    SOJ 1219. 新红黑树
    SOJ 1171. The Game of Efil
    SOJ 1180. Pasting Strings
    1215. 脱离地牢
    1317. Sudoku
    SOJ 1119. Factstone Benchmark
    soj 1099. Packing Passengers
  • 原文地址:https://www.cnblogs.com/whuanle/p/10297606.html
Copyright © 2011-2022 走看看