首先说下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. C++:sprintf()的用法(转)

    转:http://blog.csdn.net/masikkk/article/details/5634886 更多:http://blog.csdn.net/zjuwispersure/article ...

  2. 4星|《情感驱动》:可口可乐营销VP的案例回顾与经验总结

    情感驱动 作者是西班牙人,1963年出生,可口可乐前营销VP. 作者大学是法律专业,毕业后5年,在西班牙开了一个律师事务所,干了1年后去读MBA.1988年进入宝洁工作,1996年跳槽到可口可乐,辗转 ...

  3. September 26th 2017 Week 39th Tuesday

    I have to protect the one thing I can't live without. 我必须为我一生挚爱遮风挡雨. A man is a success if he gets u ...

  4. JS和css实现检测移动设备方向的变化并判断横竖屏幕

    这篇文章主要介绍了JS和css实现检测移动设备方向的变化并判断横竖屏幕,本文分别给出实现代码,需要的朋友可以参考下 方法一:用触发手机的横屏和竖屏之间的切换的事件  [自测可用, chrome , 手 ...

  5. 【笔记】python的sqlalchemy数据库连接池原理的说明

    sqlalchemy数据库连接池的使用方式是延迟初始化,就是说一开始你调用create_engine(...)后创建的那个数据库池是空的,你后面通过session.connection()或者engi ...

  6. 2754. [SCOI2012]喵星球上的点名【后缀数组】

    Description a180285幸运地被选做了地球到喵星球的留学生.他发现喵星人在上课前的点名现象非常有趣.   假设课堂上有N个喵星人,每个喵星人的名字由姓和名构成.喵星球上的老师会选择M个串 ...

  7. 【CF163E 】e-Government

    题目 两个\(log\)的树状数组套树剖? 我们对于给出的\(n\)个模式串建立\(AC\)自动机,之后对于每一个询问串直接丢上去匹配 如果这里是暴力的话,我们直接一路跳\(fail\)累加作为结束位 ...

  8. programming-languages学习笔记--第9部分

    programming-languages学习笔记–第9部分 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src ...

  9. 禁止 "启动时恢复任何注册的应用程序"

    在关闭计算机时 有些程序会进行注册 并在下次启动时恢复关闭前的状态(Restart Manager) 比如Chrome浏览器 应用程序实现这一功能可以调用RegisterApplicationRest ...

  10. linq to sql 和linq to php 的区别

    linq to sql 这是自.net框架3.5版本以上做出了相关规定. linq to php .Net的linq库的忠实移植到PHP 这个库使得大量使用匿名函数在PHP 5.3中引入的功能.因此, ...