浅谈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的属性了,解决办法有几种
- 你好,@(ViewBag.Name)先生;
- 你好,@ViewBag.Name<span>先生</span>
- 你好,<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”
最新文章
- 我的基于asp.net mvc5 +mysql+dapper+easyui 的Web开发框架(1)数据库访问(0)
- Nancy总结(二)记一次Nancy 框架中遇到的坑
- python 从文件导入分类
- C# 文件操作方法
- Android系统兼容性问题(持续更新)
- 【转】SIP 中的Dialog,call,session 和 transaction
- 黑马程序员:Java基础总结----泛型(高级)
- Method Invocation Expressions
- 自适应Simpson积分
- Storm实践
- [转]MS Excel VBO option missing in Blue Prism
- python之路——18
- uni-app 使用 iconfont
- Mac Eclipse安装lombok
- (后端)sql server 按时间段查询
- AT2046 Namori 图论
- 推荐系统 BPR 算法求解过程
- Struts 2应用程序安全功能的配置详解
- python3:文件读写+with open as语句
- Eclipse+Spring学习(一)环境搭建(转)
热门文章
- C++:sprintf()的用法(转)
- zabbix的日常监控-自动化监控(十一)
- #001 如何组织JS代码
- U-Mail邮件群发触发器功能助力营销自动化
- python多进程(三)
- 转载】JQuery中如何传递参数如click(),change()等具体实现
- Android 高级UI设计笔记23:Android 夜间模式之 两种常用方法(降低屏幕亮度+替换theme)
- DRCNN超分辨重建2016年
- P2854 [USACO06DEC]牛的过山车Cow Roller Coaster
- linux文件系统初始化过程(1)---概述