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)並緊接變數。