zoukankan      html  css  js  c++  java
  • ASP.NET Core 的 Razor 语法

    呈现 HTML

    默认 Razor 语言为 HTML。 从 Razor 标记呈现 HTML 与从 HTML 文件呈现 HTML 并没有什么不同。服务器会按原样呈现 .cshtml Razor 文件中的 HTML 标记。

    Razor 语法

    Razor 支持 C#,并使用 @ 符号从 HTML 转换为 C#。 Razor 计算 C# 表达式,并将它们呈现在 HTML 输出中。

    当 @ 符号后跟 Razor 保留关键字时,它会转换为 Razor 特定标记。 否则会转换为纯 C#。

    若要对 Razor 标记中的 @ 符号进行转义,请使用另一个 @ 符号:

    CSHTML
    <p>@@Username</p>
    

    该代码在 HTML 中使用单个 @ 符号呈现:

    HTML
    <p>@Username</p>
    

    包含电子邮件地址的 HTML 属性和内容不将 @ 符号视为转换字符。 Razor 分析不会处理以下示例中的电子邮件地址:

    CSHTML
    <a href="mailto:Support@contoso.com">Support@contoso.com</a>

    表达式编码

    计算结果为字符串的 C# 表达式采用 HTML 编码。 计算结果为 IHtmlContent 的 C# 表达式直接通过 IHtmlContent.WriteTo 呈现。 计算结果不为 IHtmlContent 的 C# 表达式通过 ToString 转换为字符串,并在呈现前进行编码。

    CSHTML
    @("<span>Hello World</span>")  

      也可使用HtmlHelper.Raw,但是不安全应该避免使用

    隐式转换

    代码块中的默认语言为 C#,不过,Razor 页面可以转换回 HTML:

    @{
        var inCSharp = true;
        <p>Now in HTML, was in C# @inCSharp</p>
    }

    @inherits

    @inherits 指令对视图继承的类提供完全控制:

    @inherits TypeNameOfClassToInheritFrom
     
     

    @functions

    @functions 指令允许 Razor 页面将函数级别的内容添加到视图:

    CSHTML
    @functions { // C# Code }
    

    例如:

    CSHTML
    @functions {
        public string GetHello()
        {
            return "Hello";
        }
    }
    
    <div>From method: @GetHello()</div> 


    查看为视图生成的 Razor C# 类

    将下面的类添加到 ASP.NET Core MVC 项目:

    using Microsoft.AspNetCore.Mvc.Razor.Extensions;
    using Microsoft.AspNetCore.Razor.Language;
    
    public class CustomTemplateEngine : MvcRazorTemplateEngine
    {
        public CustomTemplateEngine(RazorEngine engine, RazorProject project) 
            : base(engine, project)
        {
        }
            
        public override RazorCSharpDocument GenerateCode(RazorCodeDocument codeDocument)
        {
            var csharpDocument = base.GenerateCode(codeDocument);
            var generatedCode = csharpDocument.GeneratedCode;
    
            // Look at generatedCode
    
            return csharpDocument;
        }
    }

     
  • 相关阅读:
    Atitit 趋势管理之道 attilax著
    Atitit 循环处理的新特性 for...else...
    Atitit 2017年的技术趋势与未来的大技术趋势
    atitit 用什么样的维度看问题.docx 如何了解 看待xxx
    atitit prj mnrs 项目中的几种经理角色.docx
    Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
    Atitit 工具选型的因素与方法 attilax总结
    Atitit.团队文化建设影响组织的的一些原理 法则 定理 效应 p826.v4
    Atiitt 管理方面的误区总结 attilax总结
    Atitit 未来趋势把控的书籍 attilax总结 v3
  • 原文地址:https://www.cnblogs.com/student-note/p/8916555.html
Copyright © 2011-2022 走看看