Razor语法

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Razor语法相关的知识,希望对你有一定的参考价值。

摘要:Razor语法 (待续)


1. 输出单一变量时

@DateTime.Now

2. ?需要逻辑判断时,请用刮号包起来

启用状态: @(ViewBag.IsEnabled ? "启用" : "停用")

3. 多行程序

@
      var name = "Chris";    
      @:您好,我是@name




请注意这边每行完要;
Razor的注解符号  @*  // code  *@ 
再多行注解中还可以使用变量

4. 程序区段中想要放入一段html码,可用 tag包住,最后此tag不会输出到网页上

@
     var bool = true;

      if(bool)
         成功!!
      

5. 属性误判 最好是变量都用括号刮起来

错误

您好,@ViewBag.Name先生

没有Name先生属性

正确

您好,@(ViewBag).Name先生

6. Email的小老鼠不用特别处理 只要@前后有文字Razor会自行忽略

7. 输出未经HtmlEncode的字符串

mvc对于变量都是默认经过编码,因此若要显示一些tag才要解码

@

     ViewBag.Description = "文字描述 "


@Html.Raw(ViewBag.Description)

8. MasterPage

默认载入路径在 /Views/_ViewStart.cshtml (全站默认)
_ViewStart.cshtml内容为载入的主板页面入境

若是想要在 Views/Home/Index/ 的目录下载入个别的MasterPage

请在?/Views/Home/ 摆入新的_ViewStart.cshtml 即可设定成新的MasterPage

(MasterPage)有两个特殊挖洞语法

@RenderBody() : View在没有特别声明的情况下都会被填到这边

@RenderSection( name , required : false)

具名坑洞 - MasterPage与View都需要声明,

第一个参数为具名参数名称

第二个参数为是否为必填,若声明为TRUE 所有载入此Layout的VIEW都需要填入内容否则会出错

View要如何对应到具名坑洞呢?

@Section 具名坑洞Name 
       // CODE

PS: Razor执行顺序为先View在Layout所以将数据传到layout页面可以使用Viewbag与ViewData

? ? ? 但是无法从Layout传数据回view

9. @Helper辅助方法

//原来View

@foreach( var item in Model) 
     @if(item.score > 60)
          @:及格
       else
           @:不及格
      


//不希望这种逻辑一直存在很多地方可以写@helper方法帮忙

新view
@foreach( var item in Model) 
     @ShowIsPass(item.score)


@helper  ShowIsPass(int score)
         @if(score > 60)
             @:及格
       else
             @:不及格
      

若是这个Helper方法很多View想要使用

请在将@Helper方法独立出来放在App_Code目录下

加入新项目 -> MVC部分页面(Razor)

此文件副文件名为cshtml,文件名默认为类名称(习惯取代配置)

@heleper ?一定要小写

View的用法

@文件名.方法名称()

10.function自订函数

@functions
    public string GetSomeString()
    
        var name = "clris";
        return name;
    


//View调用用法
@GetSomeString()

若是多个View共用跟@helper一样请放到App_Code里面

但是请把方法变成Static不然无法使用

放到App_code的里面,view用法一样

@文件名.方法名称()

11. @using 引用命名空间

@using MvcApplication6.Models

若是每个页面都需要引入的空间可以用 /Views/web.config中设定 (不是网站根目录)

里面搜寻namespace在这里面设定

原文:大专栏  Razor语法


以上是关于Razor语法的主要内容,如果未能解决你的问题,请参考以下文章

Razor语法大全

Razor语法大全

浅谈MVC Razor基本语法

Razor 注释语法

十:Razor语法

Razor语法