标签:
欢迎来到视图这章,我们在序曲就谈过了,浏览器发送请求(request),我们的MVC程序的控制器接到请求,然后用视图进行渲染最终将渲染的数据发送到浏览器中呈现给用户。
视图文件是以.cshtml结尾的,cs?html?是的,还有vbhtml等,看到这里,应该可以猜到一些东西了吧?其实视图文件就是C#语言和html语言的结合而已。
我们来看看我在视图文件下写下的代码:
<div class="jumbotron"> <h1 id="Welcoming">你好,我在这儿</h1> <h2 id="BloggerOwnerName">blackerXHunter</h2> <p id="SelfIntroduction">这货is a 小圆厨</p> </div> <div class="row"> <div class="col-md-7"> @foreach(var blog in Model) { <div class="SingleBlog"> <a href="#"><h2 class="text-left">@blog.Name</h2></a> <h4> 我是文章内容</h4> <h6 class="text-left">发布时间:@blog.PublishDate</h6> </div> } </div> <div class="col-md-2"></div> <div class="col-md-3"></div> </div>
我们顺着一路看下去,会发现都是html语言,但是,当我们看到一个@符号的时候,就感觉不对了,额,foreach循环?嗯,没错这就是视图的重要功能了——在html文件中嵌入C#语言,我们只需使用一个@符号就可以了,不过千万要注意的一点就是,@后面的语句不能带分号。我们可以把@看成一个表达式和语句块,他不能连接多行表达式和多个语句块。不过在ASP.NET5中(我们现在学习的是asp.net4),@符号会大幅削减,取而代之的是asp-*属性。
你可能会说,道理我都懂,但是那个foreach循环上的Model是个什么鬼?嗯哼~你猜(手动眼斜),我想应该有人会猜到了,它就是大名鼎鼎的MVC之Model。不好意思,我没把所有代码展示出来,上面是有几行关键性代码的:
@using VaporColdBlog.Domain.Models @model IEnumerable<Blog> @{ ViewBag.Title = "首页"; }
第一句是一个命名空间引用,没什么好说的,第二句就是定义Model对象,这个相当于什么呢,相当于这个:
var Model = IEnumerable<Blog>
但是,千万注意的是——@model是小写!这个没什么好解释的,记住就可以了。
如果我们想写多行C#代码,比较好的做法是使用@{….}这样的形式。ViewBag是一个动态对象,存在于每个控制器中。我们可以定义一些我们需要的属性,然后在控制器,视图之间传递。你可能很奇怪,为什么我们没有写html标准文档。那是因为mvc有一种叫布局的cshtml文件,它相当于一个模板,使得每个视图都可以以这个模板为基础进行开发。它一般在~/Views/Shared/_Layout.cshtml。当然,我们也可以自行指定:
Layout = "~/Views/Shared/_Layout.cshtml";
我们接下来将继续讲述视图,欸,模型呢?("▔□▔)/ 我刚才不是讲了么( ̄▽ ̄)
----《吹响!上低音号》美丽大法好!!
标签:
原文地址:http://www.cnblogs.com/blackerXHunter/p/4546224.html