码迷,mamicode.com
首页 > 其他好文 > 详细

Razor语法

时间:2019-09-16 14:48:40      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:enc   文字   get   成功   razor   string   属性   逻辑判断   声明   

摘要: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语法

标签:enc   文字   get   成功   razor   string   属性   逻辑判断   声明   

原文地址:https://www.cnblogs.com/petewell/p/11526616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!