首先说下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”

浅谈MVC Razor基本语法的更多相关文章

  1. 浅谈 MVC 和 MTV

    浅谈 MVC 和 MTV 一.MVC M:model,模型,就是数据模型,负责数据的存取: V:view,视图,负责页面的展示逻辑: C:controller,控制器,负责业务逻辑的处理: 二.MTV ...

  2. 浅谈MVC、MVP、MVVM

    MVC M: Model            模型——数据            (对于前台而言例如:ajax.jsonp等从后台获取数据的) V:  View             视图——表现 ...

  3. 2014-07-29 浅谈MVC框架中Razor与ASPX视图引擎

    今天是在吾索实习的第15天.随着准备工作的完善,我们小组将逐步开始手机端BBS的开发,而且我们将计划使用MVC框架进行该系统的开发.虽然我们对MVC框架并不是非常熟悉,或许这会降低我们开发该系统的效率 ...

  4. ASP.NET Mvc Razor视图语法

    在ASP.NET MVC中有两套模版引擎,一套是ASPX,一套是Razor,从事过WebForms开发的朋友们,对于ASPX模版已经很熟悉了,下面我说一下我所熟悉的Razor模版引擎的一些语法,供大家 ...

  5. 浅谈MVC Form认证

    简单的谈一下MVC的Form认证. 在做MVC项目时,用户登录认证需要选用Form认证时,我们该怎么做呢?下面我们来简单给大家说一下. 首先说一下步骤 1.用户登录时,如果校验用户名密码通过后,需要调 ...

  6. 以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程

    JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作.项目管 ...

  7. 浅谈MVC和MVVM模式

    MVC I’m dating with a model… and a view, and a controller. 众所周知,MVC 是开发客户端最经典的设计模式,iOS 开发也不例外,但是 MVC ...

  8. 浅谈MVC、MVVM的区别

    一.概述 MVC,MVP,MVVM是三种常见的前端架构模式(Architectural Pattern),它通过分离关注点来改进代码组织方式.不同于设计模式(Design Pattern),只是为了解 ...

  9. 【转】浅谈MVC与三层架构

    首先给大家引入下MVC的概念: MVC(Model View Controller)模型.视图以及控制器,它是一种较为广泛应用的结构设计模式. 模型:就是在MVC设计模式中需要被显示的数据.在通常情况 ...

随机推荐

  1. 关于Tomcat端口出现的问题

    =Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. Th ...

  2. 【C#】#102 发送邮件

    项目需求:定时的发送邮件,于是学习了如何发送邮件 下面有一个简单的例子.能够实现简单的发送邮件,加上附件可以添加一个属性[Attachment],然后配置上附件的路径 Demo下载 代码总共只有一下这 ...

  3. JS定时器相关用法

    一.定时器在javascript中的作用 1.制作动画 <!DOCTYPE html> <html lang="en"> <head> < ...

  4. jstorm知识整理

    最近在做一个jstorm的程序.我的jstorm程序消费一个kafka主题,根据数据逻辑判断需要往下游哪几个kafka主题的生产者发送. 1.bolt的execute(Tuple input)方法每次 ...

  5. Loj #2256. 「SNOI2017」英雄联盟

    题目 我就是个丝薄 如果要用\(dp_i\)表示凑出\(i\)的最小花费显然不可能的 之后大力猜想能凑出来的状态不会很多,我的暴力也告诉我不是很多,好像也确实不多的样子,大概\(4e4\)左右 但是我 ...

  6. 清除SQL server 记住的用户名和密码

    公司更换电脑,清除SQL server 记住的用户名和密码 请按照上图中的位置找到相应的文件SqlStudio.bin,然后把它删除,请放一百个心,这个文件会自动生成的. 需要注意的是,在删除之前一定 ...

  7. 20145203盖泽双 《Java程序设计》第十周学习总结

    20145203盖泽双 <Java程序设计>第十周学习总结 教材学习内容总结 一.网络概述 1.网络编程就是两个或多个设备(程序)之间的数据交换. 2.识别网络上的每个设备:①IP地址②域 ...

  8. ArrayList实现原理及源码分析之JDK8

    转载 ArrayList源码分析 一.ArrayList介绍 Java 集合框架主要包括两种类型的容器: 一种是集合(Collection),存储一个元素集合. 一种是图(Map),存储键/值对映射. ...

  9. SVN 客户端使用

    一.TortoiseSVN基本设置 1.1 客户端设置     1.1  语言设置       二.基本操作 2.1 浏览服务器           用户名跟密码,跟公司配置管理员人员获取,没有专门的 ...

  10. TCL函数“参数自动补全” 与 “help 信息显示”

    tcl 函数参数自动补全和 help 信息显示 在EDA tool 中使用命令时,命令的参数可以通过 tab 键自动补全,而且可以使用 -help 显示帮助信息,使用起来很方便: 那么我们自己编写的 ...