MVC5-5 Razor引擎及视图结构
View结构
其实给我们提供了官方的MvcDemo,就是在我们直接去新建一个不为空的MVC项目。
这里就是一个MVC的Demo了,可以看一下这个Demo中View的结构是什么

上图可以发现,有一个Shared(共享)文件夹,先从这个文件夹看起,下图可以看到,里面分别有_Layout.cshtml,_LoginPartial.cshtml,Error.cshtml以有Lockout.cshtml。
- _Layout.cshtml 这个视图相当与母版页,把网站共有的部分放在这个view中。其它的视图就不需要再去写重复的代码,比如顶部导航与底部信息
- _loginPartial.cshtml 从名字可以看出来 登录分布页。在_layout中放有共有的部分,但是如果代码太多也会影响到阅读性,使用分布页面。可以使得代码更加简洁,分布页可以使用 Html.Partial去引用
- Error.cshtml 这个就很简单了,是一个错误页面。其它view都将使用Error.cshtml做错误页面展示
- Lockout.cshtml 这个没什么特别的,仅是一个视图而已。

在Views文件夹还可以发现有一个叫做_ViewStart的视图,通过名字就可以清楚的看到,这个视图先与其它的视图执行。
那么_viewstart有什么用呢? 下面有这个一个场景,我们的视图需要达到一定的条件才可以去使用母版页反之不用。就可以使用_ViewStart进行 统一设置 下图我简单写了一下,如果随机数是偶数,那么使用母版页。奇数则不用
Razor简单语法
在还没有Razor的时候,有很多其它的视图引擎。但是Razor出现的时候,其它的就慢慢的消失了。可见其强大。
Razor可以让我们在视图中去写C#代码。简单的截一张图,对下面的Razor语法进行分析

- @using 引用程序集,这个应该没有什么疑惑了
- @{} 包含块,可以在里面写一些逻辑代码,图中也可以看到进行了if判断
- @xxxx 这里xxxx可以是一个变量。在开发中常用@ViewBag.xxx,这些写法是把这个变量值显示在这个位置。
- @Html.xxx() 可以看到很多这个的代码,这种是进行调用我们后端类的方法并把返回值显示在这个位置。Html全名HtmlHelper,还有AjaxHelper。是微软为我们封装的一种常用的方法。比如下拉框、ajax提交等
- 其实我们还会经常在视图页看到@model,我们可以在Controller中返回Model。也是一种数据传输的方法
本文就到这里,下一篇讲Razor中的帮助类、HtmlHelper、AjaxHelper
MVC5-5 Razor引擎及视图结构的更多相关文章
- 012. MVC5中Razor引擎使用模板页
1.文件→新建项目→框架选择.NET Framework 4.5 2.确定后选择ASP.NET 4.5 模板→MVC→为以下项添加文件夹和核心引用→MVC, 在vs 2015中默认就使用的Razor引 ...
- Core中使用Razor视图引擎渲染视图为字符串 阅读目录
Core中使用Razor视图引擎渲染视图为字符串 } <!DOCTYPE html> <html> <head> <title>Render view ...
- [Asp.net MVC]Asp.net MVC5系列——Razor语法
Razor视图引擎是Asp.net MVC3中新扩展的内容,并且也是它的默认视图引擎.还有另外一种Web Forms视图引擎.通过前面的文章可知在Asp.net mvc5中创建视图,默认使用的是Raz ...
- Razor引擎学习:RenderBody,RenderPage和RenderSection
ASP.NET MVC 3 已经正式发布了,现在估计许多人都在拼命学,我也不能例外,刚刚看到了一篇文章,介绍了三个非常有用的方法:RenderBody,RenderPage和RenderSection ...
- [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码
在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...
- MVC 中 Razor引擎学习:RenderBody,RenderPage和RenderSection
RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @Rend ...
- 关于Razor引擎的语法说明
1.在页面上显示字符串的值, 格式:a*@变量名 但@之前必须有空格,{.}等,使得a*不可以构成变量的字符.
- Razor引擎中的_ViewStart.cshtml
Startup Code是在所有View执行之前加载和执行的代码. 在Razor引擎中的_ViewStart.cshtml 就是装载这些“预执行代码”的文件,它有两个特点: 一.就是所有View执行之 ...
- 在非MVC环境下使用 Razor引擎
Razor引擎下载地址: http://github.com/Antaris/RazorEngine 解析Model: string template = "Hello @Model.Nam ...
随机推荐
- opencv6.5-imgproc图像处理模块之轮廓
接opencv6.4-imgproc图像处理模块之直方图与模板 这部分的<opencv_tutorial>上都是直接上代码,没有原理部分的解释的. 十一.轮廓 1.图像中找轮廓 /// 转 ...
- c#新语法学习笔记
1.匿名类 匿名类编译之后会生成一个具体的泛型类,匿名类的属性是只读的.在临时数据传递时非常方便(linq查询).匿名类中不能有方法.数据传输(json),数据查询(linq) }; 2.匿名方法匿名 ...
- DOM Element节点类型详解
上文中我们讲解了 DOM 中最重要的节点类型之一的 Document 节点类型,本文我们继续深入,谈谈另一个重要的节点类型 Element . 1.概况 Element 类型用于表现 HTML 或 X ...
- 深入理解Message, MessageQueue, Handler和Looper
做过Android的都知道Message, MessageQueue, Handler和Looper,但知道不代表你理解它们.有时觉得用得很顺手,但Android怎么实现又说不上来,总觉得似懂非懂.不 ...
- js基础知识温习:构造函数与原型
构造函数 构造函数主要用于初始化新对象.按照惯例,构造函数名第一个字母都要大写. 构造函数有别于其它函数在于它使用new操作符来调用生成一个实例对象.换句话说,如果一个函数使用new操作符来调用,则将 ...
- Bootstrap系列 -- 6. 列表
一. 普通无序列表 <ul> <li>无序列表项目</li> <li>无序列表项目</li> <li>无序列表项目</li ...
- 20160303 - 升级 Windows 10 版本 1511 后,文件夹默认打开方式为 cmd 的修复
问题描述:升级 Windows 10 版本 1511 (OS 内部版本 10586.122)后,文件夹的默认打开方式变成了cmd.双击任何一个文件夹,显示相关的提示错误信息如下: [Window Ti ...
- 转 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...
- 二叉树的建立与递归遍历C语言版
</pre><pre name="code" class="cpp">#include <stdio.h> #include ...
- Ubuntu 完全卸载Apache2
安装时候使用的一键安装,很简单 apt-get install apache2 这两天想配置一个lighttpd,但是一直不能成功,今天在公司用虚拟机里面的Ubuntu 配置lighttpd成功了,怀 ...

