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