MVC3 Razor 视图引擎的基础语法

本文介绍了Razor视图引擎的基本语法,包括服务端代码的书写规范、表达式的正确使用方式、强类型的模型定义方法以及@section节点的应用技巧等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1._开头的cshtml文档将不能在服务器上访问,类似Global.asax等文件

2.服务端代码必须在@{}之间,要输出@符号可以用@Html.Encode("@")或者@@转义

  ()用来显示支持代码表达式,如:

@{
    ViewBag.Title = "Sample";
    string AppName = "MyApp";
}
<h2>@AppName.Model</h2>

 目的是想输出<h2>MyApp.Model<h2>,这里引擎无法正确识别.的意义,要能够达到预期效果,需要将AppName用括号括起来:

@{
    ViewBag.Title = "Sample";
    string AppName = "MyApp";
}
<h2>@(AppName).Model</h2>

另一个例子,防止引擎解析为邮箱,为了输出Item_4

@{
    ViewBag.Title = "Sample";
    string test = "ssss";
}
<h1>Item_@(test.Length)</h1>

还有泛型方法等也需要显示使用(),因为"<"标记会使Razor转回标记
3.可以再@{}之间直接输入标签

@{   
      <p>text</P>    
     <div>div1</div>
}

@{}间不能直接输入非标签内容可以用@:单行输出

@{    
     @: text    
     @:text 
}

或者用<text>输出多行

  @{
      <text> 
         sada
         safas
         fa
      </text>
  }

 4. @model 强类型模型定义,模型在控制器中传入  例:

    @model MvcApplication1.Models.Class1

    类型需要完全限定,不想完全限定类名,可以用@using 导入命名空间,或者在Views\web.config的  <system.web.webPages.razor>配置节加上默认导入的命名空间

5. @section节点关键字

   类似placeholder

   在布局页中定义@RenderSection("header",true)或@RenderSection("header",false)

   子页中使用@section header{}填充

  母版页中的@Renderbody()使用子页默认内容填充

  可以加入自定义的默认填充内容

         @if (IsSectionDefined("foot")) {
             @RenderSection("foot");
         }
         else {
             @: No foot 
         }

6.注释块 @*  *@之间内容为服务端注释,不会被执行,也不会输出到客户端

  

 

转载于:https://www.cnblogs.com/FlyCat/archive/2012/06/30/2571237.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值