精华内容
下载资源
问答
  • Razor

    2020-08-28 08:55:48
    什么是RazorRazor 是一种将基于服务器的代码添加到网页中的标记语法 • Razor 具有传统 ASP.NET 标记的功能,但更容易使用并且更容易学习 • Razor 是一种服务器端标记语法,与 ASP 和 PHP 很像 • Razor 支持 ...

    什么是Razor

    • Razor 是一种将基于服务器的代码添加到网页中的标记语法
    • Razor 具有传统 ASP.NET 标记的功能,但更容易使用并且更容易学习
    • Razor 是一种服务器端标记语法,与 ASP 和 PHP 很像
    • Razor 支持 C# 和 Visual Basic 编程语言

    添加Razor代码

    请记住上一章实例中的网页:
    在这里插入图片描述

    现在向实例中添加一些 Razor 代码:

    Web Pages Demo

    Hello Web Pages

    The time is @DateTime.Now

    该页面中包含普通的 HTML 标记,除此之外,还添加了一个 @ 标识的 Razor 代码。Razor 代码能够在服务器上实时地完成多有的动作,并将结果显示出来。(您可以指定格式化 选项,否则只会显示默认项。)

    主要的Razor C# 语法规则

    • Razor 代码块包含在 @{ … } 中
    • 内联表达式(变量和函数)以 @ 开头
    • 代码语句用分号结束
    • 变量使用 var 关键字声明
    • 字符串用引号括起来
    • C# 代码区分大小写
    • C# 文件的扩展名是 .cshtml
    C#实例

    @{ var myMessage = “Hello World”; }

    The value of myMessage is: @myMessage

    @{
    var greeting = “Welcome to our site!”;
    var weekDay = DateTime.Now.DayOfWeek;
    var greetingMessage = greeting + " Today is: " + weekDay;
    }

    The greeting is: @greetingMessage

    展开全文
  • razor

    2017-08-24 03:25:30
    1.Razor简介 Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行...
        

    1.Razor简介

    Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。Razor 基于 ASP.NET,它为 web 应用程序的创建而设计。它拥有传统 ASP.NET 标记的能力。Razor 网页可被描述为带有两种内容的 HTML 页面:HTML 内容和 Razor 代码。

    2.语法

    C# 的主要 Razor 语法规则:
    Razor 代码封装于 @{ ... } 中;
    行内表达式(变量和函数)以 @ 开头;
    代码语句以分号结尾;
    字符串由引号包围;
    C# 代码对大小写敏感;
    C# 文件的扩展名是 .cshtml

    <ul>
    @for (int i = 0; i < 10; i++) {
    <li>@i</li>
    }
    </ul>

    C#实例:

    <!-- 单行代码块 -->
    @{ var myMessage =    "Hello World"; }
    
    <!-- 行内表达式或变量 -->
    <p>The value of myMessage is: @myMessage</p> 
    
    <!-- 多行语句代码块 -->
    @{
    var greeting = "Welcome to our site!";
    var weekDay = DateTime.Now.DayOfWeek;
    var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
    }
    <p>The greeting is: @greetingMessage</p>
    

    3.与对象打交道

    "Date" 对象是典型的 ASP.NET 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。

    Name Value
    Day @DateTime.Now.Day
    Hour @DateTime.Now.Hour
    Minute @DateTime.Now.Minute
    Second @DateTime.Now.Second

    4.变量

    变量名必须以字母字符开头,不能包含空格和保留字符。
    使用 var 关键词或类型对变量进行声明,不过 ASP.NET 通常能够自动确定数据的类型。

    // 使用 var 关键词:
    var greeting = "Welcome to W3School";
    var counter = 103;
    var today = DateTime.Today;
    
    // 使用 data 类型:
    string greeting = "Welcome to W3School";
    int counter = 103;
    DateTime today = DateTime.Today;

    数据类型:

    类型        描述             实例
    int        整数           103, 12, 5168
    float      浮点数         3.14, 3.4e38
    decimal    小数           1037.196543
    bool       逻辑值         true, false
    string     字符串值       "Hello W3School", "Bill"

    转换数据类型:

    As系列扩展方法和Is系列扩展方法

    1. AsInt(), IsInt()
    2. AsBool(),IsBool()
    3. AsFloat(),IsFloat()
    4. AsDecimal(),IsDecimal()
    5. AsDateTime(),IsDateTime()
    6. ToString()
    @{
        var i = "10";
    }
    <p> i = @i.AsInt() </p> <!-- 输出 i = 10 --> 
    

    5.读取用户输入

    由 Request[] 函数读取输入,并由 IsPost 条件进行测试:

    @{
    var totalMessage = "";
    if(IsPost)
        {
        var num1 = Request["text1"];
        var num2 = Request["text2"];
        var total = num1.AsInt() + num2.AsInt();
        totalMessage = "Total = " + total;
        }
    }
    <html>
    <body style="background-color: beige; font-family: Verdana, Arial;">
    <form action="" method="post">
    <p><label for="text1">First Number:</label><br>
    <input type="text" name="text1" /></p>
    <p><label for="text2">Second Number:</label><br>
    <input type="text" name="text2" /></p>
    <p><input type="submit" value=" Add " /></p>
    </form>
    <p>@totalMessage</p>
    </body>
    </html>

    6.If,else if和else

    @{var price=25;}
    <html>
    <body>
    @if (price>=30)
      {
      <p>The price is high.</p>
      }
    else if (price>20 && price<30) 
      {
      <p>The price is OK.</p>
      }
    else
      {
      <p>The price is low.</p>
      }    
    </body>
    </html>

    demo:

     @if (Model != null)
        {
             if (Order>=10)
               {
                    if (Order.name)
                    {
                        <div class="info">
                            @for (int i = 0; i < count; i++)
                              {
                                 <div class="info_01">
                                     @if (count != 1)
                                        {
                                            <span class="air_span">购买人@(i + 1):</span>
                                        }
                                     else
                                        {
                                            <span class="air_span">购买人:</span>
                                        }
                                 </div>
                              }
                        </div>
                    }
                }
             else if (Order>5&&Order<10) 
               {
                   <li>
                        <span class="price">&yen;@Order.price</span>
                   </li>
               }
             else 
              {
                  ...
              }         
      }

    7.Switch条件

    @{
    var weekday=DateTime.Now.DayOfWeek;
    var day=weekday.ToString();
    var message="";
    }
    <html>
    <body>
    @switch(day)
    {
    case "Monday":
        message="This is the first weekday.";
        break;
    case "Thursday":
        message="Only one day before weekend.";
        break;
    case "Friday":
        message="Tomorrow is weekend!";
        break;
    default:
        message="Today is " + day;
        break;
    }
    <p>@message</p>
    </body>
    </html>
    

    8.循环

    for循环:

    <html>
    <body>
    @for(var i = 10; i < 21; i++)
        {<p>Line @i</p>}
    </body>
    </html>

    forEach循环:

    <html>
    <body>
    <ul>
    @foreach (var x in Request.ServerVariables)
        {<li>@x</li>}
    </ul>
    </body>
    </html>

    while循环:

    <html>
    <body>
    @{
    var i = 0;
    while (i < 5)
        {
        i += 1;
        <p>Line #@i</p>
        }
    }
    </body>
    </html>
    

    9.用@明确表示内容的起始

    <h2>lists</h2>
    <ul>
    @foreach(var p in lists){
        <li>
            @p.listName
    
            @if(p.listCount == 0){
                @:(no Left!)
            }
        </li>
    }
    </ul>

    如果没有将消息 no Left! 嵌套在HTML标签元素内,Razor不能隐式判断@if块中的内容是否是一个内容块的开始。我们用“@:字符序列”来明确地指出我们代码段里的这行应被当作是内容块。
    如果要输出非html标签和非Razor语句的代码,则用@:,他的作用是相当于在处于html下面编写一样了,如在@:后面可以加上@就是表示Razor语句的变量:

    @{
        var str = "abc";
        //下面会输出:this is a mail:dxl0321@qq.com, this is var: abc,this is mail@str,this is @;
        @: this is a mail:dxl0321@qq.com, this is var: @str,this is  mail@str,this is @@;
        //下面输出abc
        @str
    }
    

    10.Razor作用块注释

    razor作用块里面本身就是服务器代码了,因此可使用服务器代码的注释,注释有 // 和 /*/ 分别是单行注释和多行注释。另外razor注释还可以使用自身特有的@ 注释的内容 *@,支持单行和多行的。

    @{
       @*
           多行注释
           多行注释
       *@
       var i = 10;  @* asdfasf *@
    }
    
    展开全文
  • Razor Keen

    2019-10-24 21:05:14
    Razor Keen
  • Razor Razor原版文档

    2014-08-08 16:09:07
    Razor原版文档,讲的挺好,英文版,有助于理解.Net 中 MVC Razor引擎
  • Razor_SQL Razor SQL示例 示例SQL语法。 主要用于oracle,请使用MySQL
  • Razor2

    2021-01-12 06:04:24
    <div><p>Implemented Razor v2 view engine. Closes #547 <p>The implementation is compatible with existing Razor v1 engine. The project ServiceStack.Razor2 is a copy of the v1 code, modified to support ...
  • RedPlus.RazorPages ASP.NET Core Razor页面 ASP.NET Core Razor页面 ASP.NET Core Razor Pages的用法和样例: ASP.NET Core-Razor页面。
  • Razor tool

    2020-11-29 15:45:44
    I tried positioning the head at the beginning of the section to be deleted, clicked the Razor tool (which looks like a scissors, by the way, not a razor, which is confusing), moved to the end of the ...
  • Razor injection

    2021-01-03 06:45:10
    <div><p>How to prevent Razor syntax injection when using Parse()? An example is a user could inject this code: <pre><code> System.Configuration; .AppSettings["dbconnection"].ToString() ...
  • Razor Components

    2021-01-05 05:26:28
    <div><p>It seems the library breaks if I try to use it in razor components? can anyone help?</p><p>该提问来源于开源项目:SamProf/MatBlazor</p></div>
  • Razor intellisense

    2020-12-30 05:15:35
    <div><p>ASP.NET/ASP.NET Core projects aren't usable using omnisharp without Razor support</p><p>该提问来源于开源项目:OmniSharp/omnisharp-roslyn</p></div>
  • razor语法手册

    2018-02-05 15:41:47
    razor语法手册
  • Razor语法手册

    2018-10-16 10:06:00
    razor开发技术手册,试用MVC初学者学习参考Razor语法开发技术。
  • Razor Templates

    2020-12-30 12:28:18
    http://vibrantcode.com/blog/2010/8/2/inside-razor-part-3-templates.html/ or this http://forums.asp.net/t/1656631.aspx/1</p> <p>thanks in advanced.</p><p>该提问来源于开源项目:...
  • razor market

    2013-05-02 21:23:58
    razor market status analysis
  • #Razor(cshtml)Sublime Text的语法定义 ##注意如果您有兴趣接管此项目,请与我联系。 我再也没有使用过Razor语法,所以该项目停滞了。 ##概述由于无法在任何地方找到RazorRazor语法定义,我决定自己做。 ## ...
  • Razor语法

    千次阅读 2018-09-10 13:56:17
    Razor 是一种标记语法,用于将基于服务器的代码嵌入网页中。 Razor 语法由 Razor 标记、C# 和 HTML 组成。 包含 Razor 的文件通常具有 .cshtml 文件扩展名。默认 Razor 语言为 HTML, 从 Razor 标记呈现 HTML ...

    Razor 是一种标记语法,用于将基于服务器的代码嵌入网页中。 Razor 语法由 Razor 标记、C# 和 HTML 组成。 包含 Razor 的文件通常具有 .cshtml 文件扩展名。默认 Razor 语言为 HTML, 从 Razor 标记呈现 HTML 与从 HTML 文件呈现 HTML 并没有什么不同, 服务器会按原样呈现 .cshtml Razor 文件中的 HTML 标记。

    语法讲解组成:

    1. Razor语法
    2. 隐式Razor表达式
    3. 显式Razor表达式
    4. 表达式编码
    5. Razor代码块
    6. 控制结构
    7. 指令
    8. 标记帮助程序
    9. Razor保留关键字
       

    1.Razor语法

    Razor支持C#,并使用@符号从HTML转为C#。Razor计算C#表达式,并将它们呈现在HTML输出中。当@符号后跟Razor保留关键字时,它会转换为Razor特定标记,否则会转换为纯C#。

    1、如果要对Razor标记中的@符号进行转义,需要再加一个@符号,比如 代码 <p>@@Username</p> 在HTML中的呈现结果为 <p>@Username</p>

    2、包含电子邮件地址的HTML属性和内容不将@符号视为转换字符。

    2.隐式Razor表达式

    1、隐式Razor表达式以@开头,后跟C#代码,例如:<p>@DateTime.Now</p>

    2、隐式表达式不能包含空格,但是C#中的await关键字除外。如果C#语句具有明确的结束标记,则可以混用空格

    3、隐式表达式不能包含C#泛型,因为括号(<>)内的字符会被解释为HTML标记。

    3.显式Razor表达式

    1、显式表达式由@符号加平衡圆括号组成,例如:<p>Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))</p> 将计算@()括号中的所有内容,并将其呈现到输出中。

    2、可以使用显式表达式将文本与表达式结果串联起来,例如:

    @{
    var joe = new Person("Joe", 33);
    }
    <p>Age@(joe.Age)</p>

    如果不使用显式表达式,则<p>Age@joe.Age</p>将被视为邮件地址

    3、显式表达式中使用C#泛型方法,例如:<p>@(GenericMethod<int>())</p>

    4.表达式编码

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

    @("<span>Hello World</span>") 呈现的HTML为&lt;span&gt;Hello World&lt;/span&gt;,在浏览器的HTML显示为<span>Hello World</span>字符串文本

    2、HtmlHelper.Raw输出不进行编码,但是呈现为HTML标记。例如:@Html.Raw("<span>Hello World</span>") 代码,在HTML中呈现为<span>元素标记的html <span>Hello World</span>

    5.Razor代码块

    1、Razor代码块以@开头,并括在{}中,代码块中的C#代码不会呈现,一个视图中的代码块和表达式共享相同的作用域并按顺讯进行定义。例如:

    @{
    var quote = "The future depends on what you do today. - Mahatma Gandhi";
    }
    
    <p>@quote</p>
    
    @{
    quote = "Hate cannot drive out hate, only love can do that. - Martin Luther King, Jr.";
    }
    
    <p>@quote</p>

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

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

    3、带分隔符的显式转换:若要定义呈现在HTML中的代码块子节,请使用Razor中的<text>标记将要呈现的字符括起来,例如:

    @for (var i = 0; i < people.Length; i++)
    {
    var person = people[i];
    <text>Name: @person.Name</text>
    }

    使用此方法可呈现未被HTML标记括起来的HTML,如果没有HTML或者Razor标记,则运Razor行时会发生错误。

    <text>标记可用于在呈现内容时控制空格:

    1)仅呈现<text>标记之间的内容

    2)<text>标记之前或之后的空格不会显示在HTML输出中。

    4、只用@的显式行转换:若要在代码块内以HTML的形式呈现整个行的其余内容,请使用@:语法,例如:

    @for (var i = 0; i < people.Length; i++)
    {
    var person = people[i];
    @:Name: @person.Name
    }

    如果代码中没有@:,会造成Razor运行时错误。

    6.控制结构

    控制结构是对代码块的扩展

    1、条件语句:@if、else if 、else 和@switch,示例代码:

    @if (value % 2 == 0)
    {
    <p>The value was even.</p>
    }

    2、循环语句:@for、@foreach、@while和@dowhile,示例代码:

    @for (var i = 0; i < people.Length; i++)
    {
    var person = people[i];
    <p>Name: @person.Name</p>
    <p>Age: @person.Age</p>
    }

    3、复合语句using,示例代码:

    @using (Html.BeginForm())
    {
    <div>
    email:
    <input type="email" id="Email" value="">
    <button>Register</button>
    </div>
    }

    4、@try、catch、finally,示例代码:

    @try
    {
    throw new InvalidOperationException("You did something invalid.");
    }
    catch (Exception ex)
    {
    <p>The exception message: @ex.Message</p>
    }
    finally
    {
    <p>The finally statement.</p>
    }

    5、@lock,使用lock保护关键节,示例代码:

    @lock (SomeLock)
    {
    // Do critical section work
    }

    6、注释:Razor支持C#和HTML注释,示例代码:

    @{
    /* C# comment */
    // Another C# comment
    }
    <!-- HTML comment -->

    呈现网页之前,服务器会删除Razor注释,Razor使用@**@来分隔注释,示例代码:

    @*
    @{
    /* C# comment */
    // Another C# comment
    }
    <!-- HTML comment -->
    *@

    7.指令

    Razor指令由隐式表达式表示:@符号后跟保留关键字

    1、@using:用于向生成的视图添加C#using指令

    2、@model:指定传递到视图的模型类型,代码示例 @model List<UserInfo> ,则在代码中显示模型数据时可写成@{ foreach(var item in Model){ //要显示的模型的字段数据}}

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

    4、@inject:允许Razor页面将服务从服务容器注入到视图

    5、@functions:允许Razor页面将C#代码块添加到视图中,示例代码:

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

    6、@section:与布局结合使用,允许视图将内容呈现在 HTML 页面的不同部分

    8.标记帮助程序

    帮助程序有三个相关指令

    指令

    函数

    @addTagHelper 向视图提供标记帮助程序
    @removeTagHelper 从视图中删除以前添加的标记帮助程序。
    @tagHelperPrefix 指定标记前缀,以启用标记帮助程序支持并阐明标记帮助程序的用法

     

    9.Razor保留关键字

    Razor关键字

    • page(需要.NET2.0以及更高版本)
    • namespace
    • functions
    • inherits
    • model
    • section
    • helper

    C# Razor 关键字

    • case
    • do
    • default
    • for
    • foreach
    • if
    • else
    • lock
    • swicth
    • try
    • catch
    • finally
    • using
    • while

    Razor不使用的保留关键字:类

    原文地址:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-2.1

    展开全文
  • Razor Demo

    2013-01-10 14:27:05
    一个 Razor模板解析的例子,包括了解析Razor模板,传入dynamic 类型的Model,以及模板的执行
  • <p>DNN Razor Pages will follow as close as we possibly can to feature parity with .NET Core Razor Pages. If you are unfamiliar with how it works please take a look at the docs from Microsoft. Every ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,026
精华内容 3,610
关键字:

razor