添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
八块腹肌的春卷  ·  Common MySQL ...·  1小时前    · 
时尚的砖头  ·  ischange·  昨天    · 
从容的圣诞树  ·  MySQL-17-mysql alter ...·  昨天    · 
大气的单杠  ·  Is not assignable to ...·  1 月前    · 
细心的匕首  ·  Asian male ...·  2 月前    · 
不羁的上铺  ·  npm ERR! code ...·  4 月前    · 

ASP.NET Core 里的视图使用 Razor 模板语言编写,这种模板语言混合了 HTML 和 C# 的代码。(如果你在 JavaScript 下用 Jade、Pug 或者 Handlebars moustaches,在 Ruby on Rails 下用 ERB,在 Java 下用 Thymeleaf 写过页面,那你就已经了解其基本概念了.)

绝大多数视图代码就是 HTML,偶尔掺杂一点 C# 语句,用以从视图模型里抽取数据并转换为文本或者 HTML。这些 C# 语句以符号 @ 作为前缀。

TodoController 中的 action Index 生成的视图,需要从视图模型(一个待办事项的数组)获取数据,并用一个适当的表格展示给用户。按规定,视图要置于 Views 目录里,在一个与所属控制器同名的子目录下。视图文件的文件名就是 action 的名字加上一个 .cshtml 扩展名。

Views/Todo/Index.cshtml

@model TodoViewModel
    ViewData["Title"] = "Manage your todo list";
<div class="panel panel-default todo-panel">
  <div class="panel-heading">@ViewData["Title"]</div>
  <table class="table table-hover">
      <thead>
              <td>&#x2714;</td>
              <td>Item</td>
              <td>Due</td>
      </thead>
      @foreach (var item in Model.Items)
                <input type="checkbox" class="done-checkbox">
              <td>@item.Title</td>
              <td>@item.DueAt</td>
  </table>
  <div class="panel-footer add-item-form">
    <!-- TODO: Add item form -->
  </div>
</div>

在文件顶端,@model 指令告诉 Razor 该视图要绑定到哪个模型。模型通过 Model 属性进行访问。

如果在 Model.Items 里有一些待办事项条目,则 foreach 语句将遍历到每个代办事项,并渲染成一个表格的行(<tr> 元素),改行包含条目的名字和截止日期。还会展示一个带有 ID 的复选框,可以在后续操作中把该条目标记为已完成。

你可能会纳闷,其余的 HTML:<body> 标签,或者 页首 和 页脚 在哪儿?ASP.NET Core 使用一个布局视图,用以定义容纳视图的基础结构的其余部分。布局视图被保存在 Views/Shared/_Layout.cshtml

默认的 ASP.NET Core 模板在布局文件中包含了 Bootstrap 和 jQuery,便于你快捷地创建一个 web 应用程序。当然,只要你愿意,你可以使用自己的 CSS 和 JavaScript 库。