Razor 中處理迭代(for
迴圈)並動態生成 HTML 的不同方式。具體來說,它顯示了如何在迴圈內嵌入 C# 變數,並轉譯到 HTML 結果中。
cshtml
複製程式碼
@{
string[] xa = { "one", "two", "three" };
for (int i = 0; i < xa.Length; i++)
{
<RamdomString>@xa[i]</RamdomString>
}
}
for
迴圈來遍歷陣列 xa
,並依次處理每個值。<RamdomString>
這個標籤包裹變數 @xa[i]
,Razor 會在每個迴圈執行時動態生成對應的 HTML 標籤。這裡假設 <RamdomString>
是一個自訂標籤(但其實這個標籤在 HTML 中不存在)。@xa[i]
的值會被動態插入 <RamdomString>
標籤中,這代表每次迴圈執行時會插入陣列中的一個值。html
複製程式碼
<RamdomString>one</RamdomString>
<RamdomString>two</RamdomString>
<RamdomString>three</RamdomString>
cshtml
複製程式碼
@{
string[] xb = { "one", "two", "three" };
for (int i = 0; i < xb.Length; i++)
{
@:2:@xb[i]
}
}
@:
來直接插入文字,@:
是 Razor 中用來在程式碼區塊中插入純 HTML 或純文字的方法。因此,@:2:
會在每次迴圈執行時插入數字 2
,而 @xb[i]
則插入對應陣列的值。2
,後接陣列中的一個值。html
複製程式碼
2:one
2:two
2:three
@
與 @:
的差異:第一段中,@xa[i]
是將 C# 變數插入到 HTML 結構中,而第二段的 @:
是用來插入純文字(數字 2)並緊接變數。