cshtml是什么文件?它跟.html有什么關系?
cshtml是Razor在c#中文件的拓展名,要學習Razor,先了解以下幾個問題:
1:什么是ASP?
•ASP:Active Server Pages(動態服務器頁面)
是MicroSoft公司開發的服務器端腳本環境,可用來創建動態交互式網頁並建立強大的web應用程序。當服務器收到對ASP文件的請求時,它會處理包含在用於構建發送給瀏覽器的HTML(Hyper Text Markup Language,超文本置標語言)網頁文件中的服務器端腳本代碼。除服務器端腳本代碼外,ASP文件也可以包含文本、HTML(包括相關的客戶端腳本)和com組件調用。
•ASP 是在 IIS 中運行的程序
•ASP 文件與 HTML 文件類似
•ASP 文件可包含文本、HTML、XML 和腳本
•ASP 文件中的腳本可在服務器上執行
•ASP 文件的文件擴展名是 ".asp"
•ASP與HTML的區別:
當瀏覽器請求某個 HTML 文件時,服務器會返回這個文件;
當瀏覽器請求某個 ASP 文件時,IIS 將這個請求傳遞給 ASP 引擎。ASP 引擎會逐行地讀取這個 ASP 文件,並執行文件中的腳本。最后,ASP 文件將以純 HTML 的形式返回到瀏覽器。
2:什么是ASP.NET?
•ASP.NET 是一個使用 HTML、CSS、JavaScript 和服務器腳本創建網頁和網站的開發框架。
•ASP.NET 是一種服務端腳本技術:能夠使(嵌入網頁中的)腳本由Internetserver運行。
•ASP.NET 支持三種不同的開發模式:
Web Pages(Web 頁面)、MVC(Model View Controller 模型-視圖-控制器)、Web Forms(Web 窗體)
•ASP.NET 與經典 ASP 是不兼容,但 ASP.NET 可能包括經典 ASP。
•ASP.NET 具有更好的語言支持,有一大套的用戶控件和基於 XML 的組件,並集成了用戶身份驗證。
•ASP.NET 頁面的擴展名是 .aspx ,通常是用 VB (Visual Basic) 或者 C# (C sharp) 編寫。
•在 ASP.NET 中的控件可以用不同的語言(包括 C++ 和 Java)編寫。
好了,現在可以討論一下什么是ASP.NET Razor了?
1:概述:
•Razor 是一種同意您向網頁中嵌入基於server的代碼(Visual Basic和 C#)的標記語法。就像是一種server代碼和HTML代碼混寫的代碼模板。類似於沒有后置代碼的.aspx文件。
•Razor支持兩種文件類型,各自是.cshtml和.vbhtml,當中.cshtml 的server代碼使用了c#的語法,.vbhtml的server代碼使用了vb.net的語法。
•Razor的發布是和MVC一起的,作為MVC的視圖模板引擎。
•在ASP.NET MVC模式中,我們的視圖引擎選擇有兩種:ASPX(ASP.NET),Razor。
•工作:當網頁被寫入瀏覽器時,基於server的代碼可以創建動態內容。在網頁載入時,server在向瀏覽器返回頁面之前,會運行頁面內的基於server代碼。因為是在server上運行。這樣的代碼能運行復雜的任務。比方訪問數據庫。
2:語法:
Razor 代碼塊包含在 @{ ... } 中
內聯表達式(變量和函數)以 @ 開頭;
代碼語句用分號結束;
變量使用 var 關鍵字聲明;
字符串用引號括起來;
C# 代碼區分大小寫;
C# 文件的擴展名是 .cshtml
例:
1 <html> 2 <body> 3 <!-- Single statement block 單語句塊--> 4 @{ var myMessage = "Hello World"; } 5 <!-- Inline expression or variable 內聯表達式或變量--> 6 <p>The value of myMessage is: @myMessage</p> 7 <!-- Multi-statement block 多語句塊--> 8 @{ 9 var greeting = "Welcome to our site!"; 10 var weekDay = DateTime.Now.DayOfWeek; 11 var greetingMessage = greeting + " Here in Huston it is: " + weekDay; 12 } 13 <p>The greeting is: @greetingMessage</p> 14 </body> 15 </html>
補充:@{}就類似於.aspx中的<%%>
總結:Razor這種標記語法就是將server代碼嵌入到html里面,在ASP.NET MVC中使用。
在項目中的使用之后再整理