C#?Razor語法規(guī)則
- 單獨一個變量直接使用 @a 的形式,無需加分號,一般是直接使用已有變量,注意在使用 html 標簽時,要和 razor 表達式加一個空格。
//以下都是錯誤的@int a=0 //不能有空格 //@int a=0,@int 會被識別為Razor表達式, a=0識別為字符,并且@int會報錯@int a = 0//不能有空格 <p>有幾個人@a</a> //此處不會被識別,已經(jīng)變成字符了 <h1 class="display-4">Welcome @a;</h1> // 輸入的是@a; 只會識別@a,而;將會變成字符
- Razor 代碼封裝于 @{ ... } 中 --多行代碼需要包含在 @{} 中
@{ int a = 0} //報錯,在@{}中要按正常C#代碼來寫,語句后要加分號- 封裝于 @{ ... } 中,Razor的變量是全局的,在一個位置聲明一個變量,后面都可以使用。
- 如果變量在 if/for{} 等處聲明則其為局部變量。對于 if/for 這些函數(shù)來說,可以不包含在@{}內(nèi),直接使用 @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>
}- 行內(nèi)表達式(變量和函數(shù))以 @ 開頭 --單獨一條表達式如賦值、輸出,只需要在開頭加上@
<!-- 單行代碼塊 -->
@{ var myMessage = "Hello World"; }
<!-- 行內(nèi)表達式或變量 -->
<p>The value of myMessage is: @myMessage</p>- 代碼語句以分號結(jié)尾 --跟平常寫代碼一樣,語法格式一致
- 字符串由引號包圍
- C# 代碼對大小寫敏感,Razor 同樣
提示:
@{}中聲明的變量是全局性的。
@var net = "從入門到放棄"; 是錯誤的寫法,因為單行表達式不能有空格。請使用@{ var net = "從入門到放棄";}
Razor代碼可以放在HTML標簽的任何位置,與標簽結(jié)合一起,向用戶呈現(xiàn)內(nèi)容。
在多行代碼塊@{}中,如果只有c#代碼語句,則無需在每一條語句前面加@,如知識小結(jié)的第一條。
多行語句塊@{}中可以包含HTML標簽,如果需要在HTML標簽中使用代碼,只需在某一部位加上 “@語句”格式的語句。
在"多行語句代碼塊 2"的示例中,直接使用了"@for{}",{}里面包含多行代碼。在這里,for函數(shù)"for{}"里可以加入多行代碼,與"@{}"一致。
除for函數(shù)外,if , if...else... , while等函數(shù)也能包含多行代碼。
較為復雜的情況:
<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>識別出的文字條數(shù) @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語法規(guī)則的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
深入淺析c#靜態(tài)多態(tài)性與動態(tài)多態(tài)性
多態(tài)就是多種形態(tài),也就是對不同對象發(fā)送同一個消息,不同對象會做出不同的響應。這篇文章主要介紹了c#靜態(tài)多態(tài)性與動態(tài)多態(tài)性的相關知識,需要的朋友可以參考下2018-09-09
c#中WinForm用OpencvSharp實現(xiàn)ROI區(qū)域提取的示例
已經(jīng)自學OpencvSharp一段時間了,現(xiàn)在就分享一下我的學習過程,本文主要介紹了c#中WinForm用OpencvSharp實現(xiàn)ROI區(qū)域提取的示例,具有一定的參考價值,感興趣的可以了解一下2022-05-05
C#的Process類調(diào)用第三方插件實現(xiàn)PDF文件轉(zhuǎn)SWF文件
本篇文章主要介紹了C#的Process類調(diào)用第三方插件實現(xiàn)PDF文件轉(zhuǎn)SWF文件,現(xiàn)在分享給大家,具有一定的參考價值,有需要的可以了解一下。2016-11-11
C#中的Task.WaitAll和Task.WaitAny方法介紹
這篇文章介紹了C#中的Task.WaitAll和Task.WaitAny方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
C# 文件上傳下載(Excel導入,多線程下載)功能的實現(xiàn)代碼
這篇文章主要介紹了C# 文件上傳下載(Excel導入,多線程下載)功能的實現(xiàn)代碼,需要的朋友可以參考下2017-08-08

