cshtml 是 MVC3 之后新增的视图文件,跟雹行原先的 aspx 很相似。
区别主要在于二者的解释引擎不同。aspx 采用的是 WebForm Engine,而 cshtml 则是 Razor Rendering Engine。引擎的变化直接导致语法发生变化。aspx 中我们经常使用 <% test%>这种,在 cshtml 中则改为 @{ test} 这种更为简洁的写法。当然语法上的不同还有很多,题主可以专门去搜一下这方面资料。
只能在 MVC3 或更高版本等支持 Razor 的框架里使用 cshtml。
ASPX简介:
ASPX文件是微软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面,是微软推出的一种新的网络编程方法,而不是ASP的简单升级,因为它的编程方法和ASP有很大的不同,他是在服务器端靠服务器编译执行的程序代码,ASP 使用脚本语言,每次请求的时候,服务器调用脚本解帆肆败析引擎来解析执行其中的程序代码,而ASP.NET则可以使用多种语言编写,而且是全编译执行的,比ASP 快,而且,不仅仅是快的问题,有很多优点。.asp是asp的文件后缀名,.aspx是asp.net的文件后缀名。
Razor简介:
Razor是一种简单的编程语法,用于在网页中嵌入服务器端代码。Razor 语法基于 ASP.NET 框架,该框架是微软的 .NET 框架特别为 web 应用程序开发而设计的组成部分。Razor 语法赋予所有 ASP.NET 的能力,但是使用了简化过的语法,如果您是初学者,则更容易学习,如果您是专家,则更有利于提高生产力。Razor 网页可被描述为带有两种内容的 HTML 页面:HTML 内容和 Razor 代码。当服务器读取这种页面后,在将 HTML 页面发送到浏览器之前,会首先运行 Razor 代码。这些在服务器上执行的代码能够完成浏览器中无法完成的任务,比如访问服务器数据库。服务器代码能够在态颤页面被发送到浏览器之前创建动态的 HTML 内容。
从浏览器来看的话,由服务器代码生成的 HTML 与静态 HTML 内容没有区别。使用 Razor 语法的 ASP.NET 网页拥有特殊的文件扩展名 cshtml(使用 C# 的 Razor 语法)或者 vbhtml(使用 VB 的 Razor
cshtml是ASP.net平台的代码文件,原则上讲只有在运行时,cshtml才会动态生成html代码并发送到客户端,所以你想要100%地把cshtml“转换”成html是不可能的,因为你不可能知道所有变量的运行时值。当然,如果你的cshtml里面没有变量,或包含的全部是可段敬预知值的变量,那么你可以人工将变量值插入html标签,以及手动展开foreach等。
总的来说,cshtml的强大功羡羡能就在于动态生成html,要是没有运行时变量,那还不如直接写成握派慎静态的html,所以你的这个需求,原则上并不成立,如果你确实需要,建议你重新考虑一下设计思路。
PS:认真学习一下Razor语法,对你理解cshtml有很大帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)