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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM