探索ASP.Net Razor:将C#放入HTML

微软的Active Server Pages已经存在了很长时间。 在网络初期发布。 从那时起,他们经历了多次迭代和框架开发,推动了ASP.Net和ASP.Net Core的发展。 对模型视图控制器(MVC)设计模式的关注使它们保持了相关性,最新一代的平台现已成为一个开源项目。

ASP.Net Core是对流行的ASP.Net 4框架的重新设计,针对开放的.Net Core框架进行了重建,非常适合在Windows Server Nano中托管的Windows容器微服务中使用。 轻巧,快速,它是现代云托管应用程序体系结构的一部分,部署Swift且运行良好。 您也不限于Microsoft自己的IIS Web服务器,因为最新版本可以在Linux和Windows上托管,并且可以在Apache和Nginx中运行。

[ Microsoft .Net Core 2.0:您需要了解的一切 | 为什么.Net Core终于准备好迎接黄金时间了 | .Net Framework或.Net Core? 了解何时使用哪个 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

ASP.Net Core的关键组件是ASP.Net Core MVC演示。 这是一种构建复杂的Web前端的快速方法,其路由架构可为应用程序构造描述操作的URL,并提供将数据映射到对象的模型绑定,从而简化了应用程序在Web视图中处理数据的方式。 大多数ASP.Net MVC都建立在20多年的Web应用程序开发经验之上,这使我们这些一直使用它的人熟悉它,但是如果您不熟悉构建Web应用程序,仍然很容易上手。

剃刀介绍

Razor标记语法是 ASP.Net Core较重要的元素之一。 过去,我在撰写有关使用Razor语法的Microsoft Web Assembly工具Blazor时曾提及过它,但是值得深入研究,因为它的C#和HTML混合为您提供了一种呈现动态Web内容的有用方法在服务器上。

Razor最初是由Microsoft现已停产的WebMatrix Web开发工具引入的,它建立在原始VBScript ASP模型的基础上,并在网页内容中嵌入了脚本代码。 像任何网页一样,Razor内容以HTML开头,添加C#代码并使用.cshtml文件扩展名。 嵌入式Razor命令和C#代码用@符号表示(因此,如果要在Razor HTML中使用@ ,请使用两次符号@@ )。 Razor解析器足够聪明,可以识别电子邮件地址中的@ ,因此无需添加第二个。

使用Razor和C#

Razor引擎是嵌入式REPL(读取评估打印循环),类似于编辑器REPL来评估嵌入式C#代码并将其替换为适当的结果。 一些Razor代码将是程序片段,处理循环和条件片段; 其他将是简单的隐式C#表达式。 当您需要的只是C#表达式@DateTime.now时,无需编写大量代码即可在Razor页中打印日期。

类似地,您可以使用@( )包装显式的C#表达式,在运行时评估一条简单的语句,并在Razor代码块的位置显示结果。 通过使用隐式和显式C#的混合,您可以构建混合HTML和C#的基本页面模板,从而为您提供MVC应用程序视图的基本组件。

代码块:条件和循环

但是简单的表达只是Razor的一部分; 它的强大功能主要来自使用熟悉的{}封装代码块在页面上嵌入代码块。 就像我们在原始ASP的早期使用VBScript所做的一样,您可以嵌入代码来动态生成更复杂的HTML内容。 由于Razor像HTML一样被解析,因此代码在页面中的呈现方式具有隐式顺序,从页面顶部向下评估代码块和表达式。

代码块是在Razor中处理条件和其他控制结构的最佳方法。 您可以使用@if开始一行,添加一个条件,然后在满足该条件的情况下运行一个代码块。 同样,我们可以继续使用else if和else语句; 由于我们从@if开始了Razor块,因此无需在这些语句之前添加@ (Razor将其视为一个@if … else if … else块)。

服务器端的ASP.Net Core引擎在引擎盖下获取Razor代码,并使用它生成C#类,这些类作为HTML页面的一部分运行和传递内容。 这种方法允许他们实现Razor调用的指令,这些指令控制如何呈现页面以及如何使用C#代码。 例如,Razor的指令包括@model,它控制传递给视图的模型并提供对其属性的访问。

在Razor中构建页面模板

Razor的一项有用功能是<text>标记。 当包含在代码块中时, <text>标记将包装需要用HTML呈现的内容。 您可能有一个循环,该循环遍历包含目录内容的数组。 通过在循环内使用<text>块,您可以格式化和显示目录内容,而不必构建复杂的HTML结构来承载内容。 此方法与Razor的模板化委托很好地配合使用,该委托可用于定义按需加载到页面中的UI代码片段。 模板也可以内联包含在Razor代码中,从而简化了页面开发,但减少了代码重用性和可移植性。

在许多服务器端应用程序框架中,注释是一个问题,因为注释通常在HTML中呈现。 使用Razor,您可以使用C#语法和HTML注释混合使用Razor注释。 C#注释仅对开发人员可见,不会在浏览器中传递。 但是HTML注释是这样,因此您可以将两种注释技术用于面向用户的注释和调试以及开发人员。

Visual Studio的ASP.Net Core支持中有许多用于Razor的工具。 您将找到用于构建和测试页面以及创建模型并将其映射到页面内容的工具。 内置的脚手架工具将从底层的Entity Framework构造页面,从而使将数据链接到您的代码更加容易,并为您提供可以使用熟悉的Web设计工具进行自定义的页面结构。 在代码级别,将Razor与ASP.Net Core的MVC服务联系起来,可以简化构建服务器端C#来管理模型的过程,而Razor可以提供视图。

对于从一开始就在Microsoft平台上构建Web应用程序的我们中的那些人,Razor提供了一种熟悉的方式来访问新技术,并以旧技能为基础探索新技术。 对于刚进入平台的用户来说,它是ASP.Net Core MVC应用程序模型的相对较快的入门版本,可减少出错的风险并简化动态HTML内容的开发。 所有这些共同构成了一个值得在您所有网络媒体资源中使用的平台。

From: https://www.infoworld.com/article/3390155/exploring-aspnet-razor-putting-c-in-your-html.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值