例如
<!-- 单行代码块 --> @{ 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内容没有任何区别。