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引擎及视图结构的更多相关文章

  1. 012. MVC5中Razor引擎使用模板页

    1.文件→新建项目→框架选择.NET Framework 4.5 2.确定后选择ASP.NET 4.5 模板→MVC→为以下项添加文件夹和核心引用→MVC, 在vs 2015中默认就使用的Razor引 ...

  2. Core中使用Razor视图引擎渲染视图为字符串 阅读目录

    Core中使用Razor视图引擎渲染视图为字符串 } <!DOCTYPE html> <html> <head> <title>Render view ...

  3. [Asp.net MVC]Asp.net MVC5系列——Razor语法

    Razor视图引擎是Asp.net MVC3中新扩展的内容,并且也是它的默认视图引擎.还有另外一种Web Forms视图引擎.通过前面的文章可知在Asp.net mvc5中创建视图,默认使用的是Raz ...

  4. Razor引擎学习:RenderBody,RenderPage和RenderSection

    ASP.NET MVC 3 已经正式发布了,现在估计许多人都在拼命学,我也不能例外,刚刚看到了一篇文章,介绍了三个非常有用的方法:RenderBody,RenderPage和RenderSection ...

  5. [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码

    在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...

  6. MVC 中 Razor引擎学习:RenderBody,RenderPage和RenderSection

    RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @Rend ...

  7. 关于Razor引擎的语法说明

    1.在页面上显示字符串的值, 格式:a*@变量名 但@之前必须有空格,{.}等,使得a*不可以构成变量的字符.

  8. Razor引擎中的_ViewStart.cshtml

    Startup Code是在所有View执行之前加载和执行的代码. 在Razor引擎中的_ViewStart.cshtml 就是装载这些“预执行代码”的文件,它有两个特点: 一.就是所有View执行之 ...

  9. 在非MVC环境下使用 Razor引擎

    Razor引擎下载地址: http://github.com/Antaris/RazorEngine 解析Model: string template = "Hello @Model.Nam ...

随机推荐

  1. 纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)

    前言: JSF 2.X因为种种原因(我个人觉得主要是因为推出太晚),再加上EJB2之前的设计过于复杂,引起很多开发人员对官方解决方案的反感,即使EJB3后来做了大量改进,国内也很少有人对EJB3感兴趣 ...

  2. TinyFrame升级之七:重构Repository和Unit Of Work

    首先,重构的想法来源于以下文章:Correct use of Repository and Unit Of Work patterns in ASP.NET MVC,因为我发现在我的框架中,对Unit ...

  3. OkHttp使用教程

    Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient.关于HttpURLConnection和HttpClient的选择>>官方博客尽管Go ...

  4. 翻译qmake文档(二) Getting Started

    翻译qmake文档 目录 原英文文档: http://qt-project.org/doc/qt-5/qmake-tutorial.html         本教程教讲授qmake基础知识.这个手册里 ...

  5. spring boot/cloud 应用监控

    应用的监控功能,对于分布式系统非常重要.如果把分布式系统比作整个社会系统.那么各个服务对应社会中具体服务机构,比如银行.学校.超市等,那么监控就类似于警察局和医院,所以其重要性显而易见.这里说的,监控 ...

  6. apache配置虚拟主机

    步骤如下: 1.在配置文件httpd.conf中启用httpd-vhosts.conf 找到# Virtual hosts将Include conf/extra/httpd-vhosts.conf前的 ...

  7. .Net分布式异常报警系统-服务端站点管理

    管理站点 对于管理站点, 并没有太复杂的内容, 主要就是对数据库表中的数据进行维护.  管理的实体有3个 WebSite(站点信息), WebService(站点服务器信息), ErrorEntity ...

  8. 安装Ubuntu之后

    一.Ubuntu is better than fedora I used to use Utuntu 14.04,it's a LTS(long term support) edition. I d ...

  9. ESPCMS基本导航操作

    Espcms和dedecms一样,是用来建企业站的cms程序,功能强大,稳定,可以帮助您快速.便捷地新建一个企业网站.无忧主机向您推荐无忧主机php虚拟主机. 我们可以通过espcms设置来去掉比如购 ...

  10. iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换

    一.开发中难免会遇到,系统返回的数据中字典套集合,集合里面又套一层字典,然后字典里面还有字典或者集合等等的复杂结构的数据...MJExtension轻松搞定这类问题 1.解决方法一: 例:百思项目中帖 ...