MVC5前端代码结构

在翻阅Views这个文件夹的时候,有些看懂有些看不懂,雾里看花。但是万事怕研究,分开来看看。

它山之石,可以攻玉。从Django到ASP .net ,我熟悉了他们关于模版的设计思维,我也不小心被俘虏了。所以到了mvc中我还是在努力寻找如何编写模版。

看懂了的,新建文件的时候我发现了能新建的页面类型。

布局页,分布页,带布局的视图页/不带布局的视图页

看到这些个就笑了,怀着学习的心态,最好的办法就是把所有的都新建一遍看看。结果发现全都是.cshtml结尾的,没有asp .net 布局文件(.master)、视图文件(.aspx)、用户控件(.ascx)那么的复杂。

具体来看看不同类型下的模版文件初始内容有何不同。

1.布局页(模版):

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
</head>
<body>
    <div>
        @RenderBody()
    </div>
</body>
</html>

和传统html没什么两样,有些特别之处——Razor语法:@ViewBag.Title 充当标题的标记,编译时替换。 @RenderBody() 代表着继承布局模版的视图内容 。动手编写你自己的模版吧。

2.分布页(分片、分部分的意思):没有任何内容,从研究其他项目内视图发现,这里面多放置需要逻辑判断显示的不同内容等界面逻辑代码。如需要引用,@Html.Partial("_XXXPartial") 这样在你的代码中使用那个分片页。

3.带模版的视图页/不带模版的视图页(我这里模版就是布局,讲习惯了): 

@{
    Layout = "~/Views/Shared/_LayoutNavigation.cshtml";
    ViewBag.title = "测试页面";
}

文件抬头就是引用需要使用的布局页面,反正模版就是占好的坑,一个一个的去填就是了。

我发现,布局与分布视图都是以下划线开头,取私有固定之意,为模版。布局都已Layout结尾,分片都已Partial结尾。

从本质上来说这些不同类型的文件根本没有任何区别,你可以新建一个空的项目编写任何一个类型的文件,只要你的命名上规范(为的你能一眼分清楚它是干嘛的),格式上按照不同的来,模版引用模版,视图引用模版,视图包含分布,模版包含分布。形成了一个树形的结构,全看我们怎么写。

这里特意说明,子模版抬头引用不必说,其中要标记引用视图的内容位置和父模版一样用 @RenderBody() 标记就是了。

还有些不懂,翻遍了项目,没搞明白 _ViewStart.cshtml 这个视图是在何处定义声明的。因为它的存在,你可以不在你的视图中引用任何布局模版,而默认使用 _ViewStart.cshtml 中引用的布局模版。当然你引用的话,就不会使用它默认的布局模版。

暂完

你可能感兴趣的:(视图,views,MVC5)