zoukankan      html  css  js  c++  java
  • MVC学习-View(1)-Razor视图引擎

      它就是一个尖括号生成器--微软项目经理(Scott Hanselman)

    1.特点:

      (1)紧凑,富有表现力和流畅

      (2)上手快

      (3)不是新编程语言

      (4)可以使用任何文本编辑器编写

      (5)智能感应输入提示

      (6)便于单元测试

    2.语法:

      (1)语句结束符,在“@{/*代码体*/}”代码块内的代码每一行必须以“;”结束,而“@xxx”不需要。

      (2)大小写敏感

      (3)字符类型常量必须以双引号“”包括。

      (4)注释:"//..."单行注释,“@*...*@”,“/*...*/”多行注释。

      (5)局部变量:(不支持访问修饰符)

      在单行上定义局部变量:

      @{var total=7;}

      @{var mystr="hello world";}

      在多行上定义局部变量:

      @{var str=“。。。”;

        var str2="...";

        }

      在上下文中使用变量:

      <p>the count is:@total</p>

      <p>the message is:@mystr</p>

      (6)在@{}内部可以使用任意html标记

      (7)文本输出:

      单行输出:@{@:你好;

            @:你好;

            }

      多行输出:@{<text>

            文本

            文本

            </text>

        }

      (8)支持if语句,for循环,while循环,foreach循环。

      (9)类型转换方法:AsInt(),IsInt(),AsBool(),IsBool()...

      (10)在Razor视图引擎页面可以引用.net框架提供的类库,当然也可以引用自己编写的类库。

    3.Layout布局系统

      Layout页面文件一般应放在Views/Shared文件夹下。

      引用方法:@{

            Layout="~/Views/Shared/_LayoutPage1.cshtml";

            }

      布局文件中可以包含很多节,使用@RenderSection()加入节,该方法有两种重载方法:@RenderSection(string name),@RenderSection(string name,bool requied)。注意@RenderBody()能出现一次,@RenderSection()可以出现多次。

    4.ViewStart

      Razor视图引擎提供了ViewStart功能,使用该功能可以不需要再每个视图中显式设置布局的新功能,而是能一次性定义网站内所有视图的布局逻辑,可让视图文件更干净,也更容易维护。ViewStart功能在名为“_ViewStart.cshtml”的文件中实现,其中的代码会先于放在任何其他视图的代码被执行,里面有默认生成的代码:@{Layout="~/Views/Shared/_Layout.cshtml";}

    5.部分视图(Partial Views)

      有点类似于aspx视图引擎中的用户控件,使用部分视图可以创建放置于不同页面的通用部分。创建方法有两种:一,在文件夹Views中用鼠标右击,选择命令“添加|Views”,按照提示创建部分视图;二,单击对应的行为方法,选择命令“Add View”,按照提示创建部分视图,新创建的部分视图是空白的,不包含任何代码,可以使用Html.Partial()方法把部分视图添加到视图中。

    6.子行为

      子行为是在一个视图中调用的行为方法,子行为与行为之间的关系如同部分视图与视图一样。子行为可以避免在应用程序中反复调用控制器。示例代码:

    [ChildActionOnly]

    public ActionResult SubMessage(){

    return PartialView();

    }

    ChildActionOnly属性不是必须的,任何行为方法都可以作为子行为被调用,但是ChildActionOnly属性标记了一个行为只能在视图中作为子行为被调用,在视图中,用Html.Action()方法来调用子行为。

  • 相关阅读:
    WPF Expander 炫酷自定义Style
    C#8.0 中的 【索引与范围】
    Windows的图形设备接口与Windows绘图
    第一个Windows窗口应用程序
    0-1背包问题的分枝—限界算法
    哈密尔顿回路(旅行售货员问题)的回溯算法
    背包问题的贪心算法
    实现矩阵连乘的动态规划算法
    用分治策略实现棋盘覆盖问题
    sql注入实例分析
  • 原文地址:https://www.cnblogs.com/Lightmen/p/4945904.html
Copyright © 2011-2022 走看看