本章主要深入來介紹Razor語法,這在cshtml檔案中是相當重要而且非常好用,想在前端使用後端語法完全靠他!
Razor
寫在View(cshtml)頁面,主要有下列幾種表示法
@請開始寫
@{
}
@{
@:我是文字
<text>我也是文字</text>
}
@@
<!--我是註解,編譯之後F12看的到-->
@*我是註解,編譯之後F12看不到*@
@functions{
public class Test{
public string TestStr{get;set;}
public string TestMethod(){
return "Hello!";
}
}
}
@Html.Raw
在Razor中是十分重要的語法,簡單來說,就是告訴瀏覽器,我是html,而不是文字,看看以下範例,想想會不會跳alert訊息呢?
@{
string s = "<script>alert(123)</script>";
}
@s
答案是不會,只會印出文字alert(123)
必須要寫成Html.Raw才會被視為前端語法
@{
string s = "<script>alert(123)</script>";
}
@Html.Raw(s)
有了基本概念後,我們來看看以下範例:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<h1>Home</h1>
@{
int i = 77; //c#
<h3>Hello @i</h3> //tag
@:Coding!
<text>
滷肉飯
</text>
}
@i
@(i + 100)
<hr />
@{
string s = "<script>alert(123)</script>";
}
@s
@*@Html.Raw(s)*@
<hr />
@{
//local函式
string SayHi() => "Hi";
}
@functions{
//類別
public DateTime GetDate() => DateTime.Now;
public class Book
{
public string Title { get; set; }
}
public Book GetBook() => new Book { Title = "MVC" };
}
@SayHi()
@ViewBag.Message
@GetDate()
@GetBook().Title
<hr>
</body>
</html>
結果: