Razor视图引擎基础语法

  1 @{
  2     Layout = null;
  3 }
  4 <hr />
  5 目标页面 :
  6 @PageData["myData"]
  7 <hr />
  8 <!DOCTYPE html>
  9 @this.GetType().Assembly.Location.ToString()
 10 <html>
 11 <head>
 12     <meta name="viewport" content="width=device-width" />
 13     <title>RazorView</title>
 14 </head>
 15 <body>
 16     <!--1.0 Razor C#语句块-->
 17     @{
 18        for(int i =0;i<10;i++)
 19        {
 20            //Response.Write("<div></div>"); 
 21            <gzitcast>哈哈哈 @Model.CName~~~~~</gzitcast>
 22            //Response.Write("<div>哈哈哈哈~~~~</div>");
 23        }
 24     }
 25     <!--2.0 输出. 使用小括号-->
 26     <div>@(ViewBag.CName).CName</div>
 27     结果:
 28     <div>aa.CName</div>
 29     
 30     <!--3.0 输出 Email-->
 31     @{
 32         //定义一个 匿名类 变量
 33         var qq = new { com = "126" };
 34      }
 35 
 36     <div>JamesZou707@qq.com</div>
 37     <!--             输出qq变量的com属性-->
 38     <div>JamesZou707 @qq.com</div>
 39     
 40     <hr />
 41     <!--4.0 输出 字符串-->
 42     <!--4.1直接使用@变量 输出变量值,相当于 Response.Write(qq.com)-->
 43     @qq.com
 44     <!--4.1 代码块 输出 字符串-->
 45     @{
 46         Response.Write(qq.com);   
 47      }
 48     <hr />
 49     <!--5.0 输出 html字符串 -->
 50     @{
 51         string strHtml = "<input type='text'/>";
 52         @strHtml
 53     }
 54     <!--5.1 razor 会自动 转义 输出字符串中的 尖括号 <> -->
 55     @strHtml
 56     
 57     <!--5.2 Response输出 html,缺点 ResponseWrite的内容 都在页面最上面-->
 58     @{
 59         Response.Write(strHtml);
 60     }
 61     
 62     <!--5.3 使用Html.Raw方法 输出不转义的html,因为 方法会返回 一个 HtmlString 对象-->
 63     @Html.Raw(strHtml)
 64 
 65     
 66     <!--5.4 使用HtmlString 输出不转义的html-->
 67     @{
 68         HtmlString htmlRaw = new HtmlString("<input type='button' value='RawHTML'/>");
 69         @htmlRaw.ToHtmlString();
 70      }
 71    
 72     
 73     <!--5.5 使用MVCHtmlString静态方法Create输出不转义的html-->
 74     @{
 75         HtmlString strHtml2 = MvcHtmlString.Create("<input type='radio'/>");   
 76         @strHtml2 
 77     }
 78 
 79     <!--6.0 在视图中 声明"方法" ,此方法 就是 在 视图类中 添加一个 返回值为 HelperResult 的方法-->
 80     <!--注意:一般 不在视图上定义方法,因为 方法就是业务,而mvc本身就是为了 把 业务 和 视图 分离开-->
 81     <!-- 之所以 Razor支持 在视图上 定义方法,就是为了 解决 视图上要重复  输出 html代码 块 的情况 -->
 82     @helper ShowHi(string a) {
 83         <div style="border:1px solid #0094ff;">哈哈哈~~~~ @a</div>
 84     }
 85     
 86     @ShowHi("小孩~~~");
 87 
 88     <!--6.1 在视图中 调用 无返回值 方法,必须要加上大括号 && 重要:在当前视图 中 传递参数 给另外一个视图-->
 89     @{ViewData["partData"]="哇哈哈哈哈";}
 90     @{Html.RenderPartial("~/Views/Home/PartTargetView.cshtml");}
 91 
 92     <!--6.2 在视图中 调用 有返回值方法,不需要加 大括号; 由此看出@后直接跟变量 或 带返回值的方法,会直接在此输出 变量内容 或 方法返回的值-->
 93     @Html.TextBox("txtname")
 94 
 95     <!--6.3调用泛型方法 需要 加大括号-->
 96     @*
 97         @{ShowObj<object>()}
 98     *@
 99 
100     <!--7.0 注释-->
101     @*
102     哇哈哈哈哈,我们是注释~~~~~~~~~~~103     *@
104     
105     @{
106       //哈哈哈~~,我是单行注释  
107     }
108     
109     <!--8.0 在C#代码块中 输出文本-->
110     @{
111         <div>我爱广州</div>
112         <!--使用 Razor内置标签 <text> -->
113         <text>我爱广州</text>
114         <!--方式二-->
115         @:我爱广州
116      }
117     
118     <!--9.0 在视图中 输出@符号-->
119     @@我被转义了
120 
121     
122     <!--10.0 访问内部对象属性-->
123     @Response
124 
125     @("211".AsInt())
126 
127     @Href("~/Home/Index");
128 </body>
129 </html>

 

posted @ 2014-11-23 23:29  叫我霍啊啊啊  阅读(215)  评论(0编辑  收藏  举报