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中使用。
在项目中的使用之后再整理