一,

1.@using :引入命名空间

2.@model:声明强类型的数据 Model 类型

3.@section:定义要实现母版页的节信息

4.@RenderBody():当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间。

    在模板页的占位符,用来渲染那些没有特地命名的段落。  

5.@RenderPage:呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:          

   @RenderPage("~/Views/Shared/_Header.cshtml")   

6.@RenderSection:布局页面还有节(Section)的概念,便于局部呈现

二,

1.行内(inline)C#(服务器端代码)形式(行内代码)@变量

例如:@User.Name,变量或属性结束后,任何形式文本或者标签都自动被解析为html,如遇结束判断有歧义,请加括号如下 

 @( 表达式)  

   例如:@(i + 1) 或 @(User.Name)  括号里面为:表达式,或者变量

 @方法调用

    例如:@Html.TextBox("UserName").ToString()

2. 代码块 ( 注: 代码块里面的代码要严格按照c#语法来,每行结束必需有分号)

 第一种情况:

  @{ 代码块}

  @if (条件) { 代码块}

  @switch (条件) { 分支匹配代码块} 

  @for (循环控制) { 代码块} 

  @foreach (循环控制) { 代码块} 

  @while (循环控制) { 代码块} 

  @do { 代码块} while (循环控制)

第二种情况:(代码块中的文本或者Html客户端标签

 (1)单行文本@:行内文本  

        换行的话自动变成了C#服务器端代码。

(2)多行文本 

       任何标签对 ,例如:<div>多行文字</div> 

       任何自闭合标签,例如:<img 多行属性 /> 

       纯文字使用伪标签<text> ,例如:<text>

       多行文字,两侧标签不会被输出</text> 

3.其他

     电子邮箱可以自动识别,例如:123456@qq.com 

     被误认为是电子邮箱的请加括号(),例如:123456(@UserName) 

     要输出商标版权等的,请用@字符转义,例如:@@ →会输出单个字符@

三,HtmlHelper和AjaxHelper

1.Html.BeginForm的两种写法:

  (1)使用using语句

         @using(Html.BeginForm()) {

 

          } 

  (2)使用代码块闭合的形式  (注意form是代码块形式的不是行内代码:所以结尾必需有分号) 

           @{Html.BeginForm();}

 

           @{Html.EndForm();}   

 2.Ajax.BeginForm()的写法

  @using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId="",OnSuccess=""})

   )

   {  

   }

  注:这里要想Ajax的Form有效的话我们必须在view页面引入支持Ajax的Js脚本

@Scripts.Render("~/bundles/jqueryval") 

 四,对于Razor智能感知的一点补充

当我们自定义一个类,让后想让这个类在Razor引擎有只能感知能力的时候。我们可以找到Views/Web.config文件,把我们的类所在的命名空间添加进去就可以了。