ASP.NET MVC 的 Razor 語法如何顯示關鍵字符號 @

ASP.NET MVC 的 Razor 語法如何顯示關鍵字符號 @

在 ASP.NET MVC 前端的 View 語法,除了基本的 HTML + JavaScript + CSS 語法之外,還採用了 Razor 語法。
Razor 是將伺服器端的語法嵌入到前端 View 頁面的標記語法,存放的副檔名類型為 .cshtml。

Razor 語法開頭使用 @ 符號表示會執行 Razor 指令,語法內容支援 C# 語法。

Razor 語法簡易介紹

以下介紹幾個常見的 Razor 語法

1. 取得目前日期

@{ } 框起來的內容就會是伺服器 C# 語法的內容。

2. 顯示 Controller 傳遞字典值

如果在 Controller 端有設定 @ViewBag.Name 的話,就可以在前端 View 頁面顯示出該值了。

Razor 顯示關鍵字 @ 符號

如果想要在網頁上顯示 @abc ,然後語法上輸入 @abc 是會回傳錯誤的。

因為 @ 是關鍵字符號,會轉譯成 C# 語法,就會因為編譯錯誤而失敗。

可是如果直接輸入信箱地址 aaa@abc.com 是可以正常顯示的。
因為 @ 符號前面有字母,所以被視為字串的一種,就不會轉換成 C# 語法。

所以 Razor 執行的關鍵字 @ 符號前面是空格或是換行才會被解析。

如果 @ 做為Razor 的關鍵符號,那如果要在網頁上顯示 @ 該怎麼顯示呢?

如果要直接顯示 @ 在網頁上可以使用連續輸入兩個 @,用 @@ 表示就可以正常顯示一個 @ 符號了。

語法範例:

可以正常顯示一個 @ 符號。

Razor 顯示語法式字串

在 HTML 裡面如果輸入 <script>alert(1)</script> 是會被 JavaScript 執行的,如果要在 Razor 顯示 <script>alert(1)</script> 的字串在網頁上,可使用以下的語法。

在 C# 設定的字串,放到 HTML 顯示時,預設會轉為字文輸出,即使它為一段 Javascript 也不會執行。

同以上的方法,在 Razor 設定的字串不會被執行,所以要在網頁上顯示一個 @ 符號也是可行的。

用這樣的語法也會顯示剛剛用 @@ 得到的結果,但是會比較好理解一點。

PS:
如果你想要讓 C# 的字串,可以正常被 HTML 編譯,可以使用 @Html.Raw(script) 語法來執行喔。

關於 ASP.NET 的 Razor 官方語法參考可看這裡

相關學習文章

如果你在學習上有不懂的地方,需要諮詢服務,可以參考站長服務,我想辨法解決你的問題
如果文章內容有過時、不適用或錯誤的地方,幫我在下方留言通知我一下,謝謝

加入社團一起討論

關注我的 IG