【MVC】Razor语法一

    xiaoxiao2021-04-17  34

        当我们在使用VS创建Web项目时,会选择ASP.NET WEB窗体应用程序或ASP.NET MVC Web应用程序。前者视图引擎为ASPX,也就是以.aspx为后缀名的视图,后者视图引擎为Rzaor,也就是以.cshtml为后缀名的视图。 一、C# 的主要 Razor 语法规则 Razor 代码封装于 @{ ... } 中 行内表达式(变量和函数)以 @ 开头 代码语句以分号结尾 字符串由引号包围 C# 代码对大小写敏感 C# 文件的扩展名是 .cshtml

    例如

    <!-- 单行代码块 --> @{ var myMessage = "Hello World"; } <!-- 行内表达式(变量和函数) --> <p> @myMessage</p> <!-- 多行语句代码块 --> @{ //这是注释 var id = "1111"; var name = "Troy"; var password="MyPassword" } @*这是注释*@ <p>@id</p><p>@name</p><p>@password</p>

    注: 

         1、@字符为Razor服务器代码块的标识符,表示后面的是服务器端代码。这和ASPX中在<%%>字符中写服务器代码是一样的道理。      2、大括号{}里面的就是表示作用域的范围。      3、Razor作用块里面就是服务器代码了,因此也可以使用//和/**/来进行单行注释和 多行注释。当然 <!--注释内容-->也是可以的。而@*注释内容*@是Razor注释特有的。

    二、Razor和html代码混合编写     在Rzaor中写html代码和在html代码中写Razor代码都是可以的,并且还有智能提示。

    @{ <div>我爱北京</div> @*使用Razor内置标签<text>*@ <text>我爱北京</text> <!--使用Razor语法--> @:我爱北京 }

    三、布局     Layout方式布局相当于一个模板,我们在指定地方去添加代码。相当于定义好框架,作为一个母版页,在它下面的页面需要修改不同代码的地方使用@RenderBody

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>@ViewBag.Title</title> @Styles.Render("~/Content/css") </head> <body> @RenderBody() @RenderSection("bodyArea",required:false) </body> </html>

    在添加视图时,会让选择是否使用布局或母版页。

    现在使用布局页创建视图View1

    @{ ViewBag.Title = "View1"; } <h2>View1</h2>

    现在不使用布局视图创建视图View2,

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>View2</title> </head> <body> <div> </div> </body> </html> View1代码比View2代码少很多,因为引用了布局页面,在布局页面中引入了css文件,目前View1中,@RendyBody()填充<h2>View1</h2>。 @RenderSection("bodyArea",required:false)因为required:false表示@RenderSection()不必填充。 四、如何工作的     Razor网页可被描述为带有两种内容的HTML页面:HTML内容和Razor代码。     当服务器读取Razor页面后,在将HTML页面发送到浏览器 之前,会首先运行Razor代码。这些在服务器上执行的代码能够完成浏览器中无法完成的任务,服务器代码能够在网页被发送到浏览器之前创建创建动态的HTML内容,     从浏览器角度来看,由服务器代码生成的HTML与静态HTML内容没有任何区别。

    转载请注明原文地址: https://ju.6miu.com/read-673335.html

    最新回复(0)