ASP.NET MVC学习记录一 Razor语法

 本文页面来源地址:http://www.cnblogs.com/dengxinglin/p/3352078.html

1.Razor文件类型

Razor可以在vb.net和C#中使用。分别对应了两种文件类型,.vbhtml和.cshtml。

2.Razor的标识符

@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了。

3.Razor的作用域

大括号里面的就是表示作用域的范围,用形如@{code}来写一段代码块。

@{
string userName= "张三";
@userName
}
在作用域(代码块)中输出也是用@符号的。

4.用Razor和html代码混合编写

a.在作用域内如果是以html标签开始则视为文本输出

b.如果要输出@,则使用@@

c.@:,他的作用是相当于在处于html下面编写

5.Razor作用块注释

a.razor作用块里是服务器代码,因此可直接使用服务器代码的注释,注释有//,/**/分别是单行注释,多行注释。

b.razor注释还可以使用自身特有的@* 注释的内容 *@,支持单行和多行。

@{
@*
多行注释
多行注释
*@
var i = 10; @* asdfasf *@
}

6.Razor类型转换

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

AsInt(), IsInt()

    AsBool(),IsBool()

   AsFloat(),IsFloat()

    AsDecimal(),IsDecimal()

    AsDateTime(),IsDateTime()

    ToString()

7.razor其它

@Href("~/")//表示网站的根目录

@Html.Raw(Module.Content) 输出HTML,如:@Html.Raw('<font color='red'>红字</font>')。

8.布局(Layout)

layout是一个模板,作为一个母版页,@RenderBody()方法可以理解为占位符。

LayoutPage.cshtml页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>我的网站 - @Page.Title</title>
</head>
<body>
@RenderBody()
</body>
</html>

子页面
@{
Layout = "/LayoutPage.cshtml";
Page.Title = "测试页面哦";
}

<p>This is a layout test</p>

9.页面(Page)

page是页面的一部分(一般为多个页面的公共内容,既为fragment),输出另外一个razor文件的内容时用到,比如头部或者尾部这些公共的内容时候需要用到。
输出就使用 @RenderPage()方法

如:A页面中也要把B页面的内容输出

A页面:

<p>
@RenderPage("/b.cshtml")
</p>

B页面的代码如下:

<font color="red">这是一个子页面</font>

10.Section区域

Section在Layout中用。 @RenderSection("Section名称"),在layout中声明。在其子页面中实现。

layout中声明
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>我的网站 - @Page.Title</title>
</head>
<body>
@RenderSection("SubMenu")
@RenderBody()
</body>
</html>

子页面中自定义实现
@section SubMenu{
Hello This is a section implement in About View.
}


如果在子页面中没有去实现了SubMenu了,则会抛出异常。我们可以它的重载@RenderSection("SubMenu", false)。
@if (IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu", false)
}
else
{
<p>SubMenu Section is not defined!</p>
}
11. Helper

helper可以定义可重复使用的方法,不仅可以在同一个页面不同地方使用,还可以在不同的页面使用。

如在cshtml中直接写:
@helper sum(int a,int b)
{
var result=a+b;
  @result

}
<div >
<p>@@helper的语法</p> <p>2+3=@sum(2,3)</p>
<p>5+9=@sum(5,9)</p>
</div>

通常会把一类Helper放在一个单独的cshtml文件中,而文件名就相当于一个类名。
把sum放在HelpMath.cshtml文件中,则我们在上面cshtml中的使用方法是:

<p>2+3=@HelpMath.sum(2,3)</p>
<p>5+9=@HelpMath.sum(5,9)</p>

另外,系统还为我们提供了一些列的Helper,用来简化Html的书写。这些Helper放在@Html中,我们可以方便的使用:

<p>
@Html.TextBox("txtName")
</p>

 

posted @ 2016-03-10 16:43  求道者  阅读(211)  评论(0)    收藏  举报