zoukankan      html  css  js  c++  java
  • 浅谈MVC Razor基本语法

    首先说下MVC,mvc已经不用ViewState来保留网页的状态,所以大部分依赖ViewState的功能都将无法使用, 比如gridview的分页与排序,page trace等利用viewstate记录状态的功能将全部失效,另外的大改变就是 asp.net mvc已经没有页面生命周期也没有事件驱动.

           Razor语法是在MVC3.0引入的全新的c#语法,取而代之<%...%>语法.用在mvc的view页面.

    首先谈一下razor语法的基本用法:

    1.如果在页面输出单一变量时,只要在c#语句之前加上@符号即可,范例如下:

    <p>

    现在时刻:@DateTime.Now

    </p>

    2、在页面中输出一段含有空白子元或运算子的结果时,必须在前后加上一个小括弧,范例如下:

    <p>

    会员名称:@(User.Identity.Name+Model.MemberLevel)

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

    </p>

    3、在页面中执行多行c#代码时,必须在前后加上一个大括弧,语法范例如下:

    @{

    var name="Daniel";

    var message="你好"+name;

    }

    }

    注意上述属于一个c#代码片段,在撰写代码时必须符合c#语言规范,也就是每段句都要由分号结尾.

    4、如果要在多行c#代码的Razor语法中插入html或其他文字内容,必须在每一行最前面加上"@:"符号,而且加上"@:"符号的这行代码里,也可以加上其他Razor变量,如下范例:

    @

    {

    var name="Daniel";

    @:你好",我是 @name

    }

    当然也可以用如下加上一堆html标签,Razor语法会自动识别

    @

    {

    var name="Daniel";

    <span>你好,我是</span> @name

    }

    或者使用Razor语法中的<text>标签

    @

    {

    var name="Daniel";

    <text>你好,我是</text> @name

    }

    5、如果要在Razor页面中输出“@”符号,可以在“@”符号前再加一@,如下:

    @@Daniel,输出为@Daniel

    6、属性名称误判

    当你想输出以下内容时 --

    你好,@ViewBag.Name先生。

    会造成Razor把Name先生当做viewBag的属性了,解决办法有几种

    1. 你好,@(ViewBag.Name)先生;
    2. 你好,@ViewBag.Name<span>先生</span>
    3. 你好,<span>@ViewBag.Name</span>先生

    7、输出一段可以解析的html

    当我们定义如下

    @{

    ViewBag.Description="<span style='font-weight:bold;'>描述文字</span>";

    }

    @ViewBag.Description

    结果为<span style='font-weight:bold;'>描述文字</span>,如果想输出html解析后的描述文字,那么可以使用 html辅助方法Html.Raw(ViewBag.Description)

          如果我们要将以下中的“System.web.MVc”变成一个Razor变量,

          类别是 System.Web.Mvc.Controller

    也许你可能会写成以下语法,但是输出结果不是期望的;输出结果为“类别是@ViewBag.MvcNamespace.Controller”

    @{
        ViewBag.MvcNamespace = "System.Web.Mvc";
    }

    类别是@ViewBag.MvcNamespace.Controller

          为了达到输出结果可以改成以下方式类别是@(ViewBag.MvcNamespace).Controller,输出结果为“类别是System.Web.Mvc.Controller”

  • 相关阅读:
    20172303 2017-2018-2 《程序设计与数据结构》实验一报告
    20172303 2017-2018-2 《程序设计与数据结构》第3周学习总结
    20172303 2017-2018-2 《程序设计与数据结构》第2周学习总结
    20172303 2017-2018-2 《程序设计与数据结构》第1周学习总结
    预备作业03
    预备作业02
    预备作业01
    日语学习笔记
    [Redux] redux之combineReducers
    [Vue] vue跳转外部链接
  • 原文地址:https://www.cnblogs.com/cby-love/p/5349610.html
Copyright © 2011-2022 走看看