Views 基本介紹
在這裡,會介紹如何建立view,及如何在controller載入view
在開始說明view之前,先特別提一下layout
layout
在開發過程中,我們會將一些頻繁被使用到的HTML內容,統一寫在layout裡面 例如: header、footer、sidebar、menu、global js、global css…
layout的模板位於 Views/shared/_Layout.cshtml 其中,@RenderBody() 表示為常變動的view HTML區塊
Views/shared/_Layout.cshtml
...
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© 2016 - WebApplication2</p>
</footer>
</div>
...
如果不想使用layout,可以開啟 Views/_ViewStart.cshtml ,將 Layout = “_Layout”; 改成 Layout = “"; 就可以關閉layout Views/_ViewStart.cshtml
@{
Layout = "_Layout";
}
建立view
接下來,開始說明如何建立view
在右側欄位中,會看見view資料夾以及範例資料夾、檔案 在view資料夾 >右鍵>Add>New Folder 先建立一個HelloWorld資料夾
接著,準備新增檔案 在view資料夾>HelloWorld>右鍵>Add>New Item ASP.NET>MVC View Page 在對話視窗底部可以設定檔案名稱 在這裡,我們先維持預設的 Index.cshtml
接著開啟 Views/HelloWorld/Index.cshtml 將內容修改成:
Views/HelloWorld/Index.cshtml
@{
ViewData["Title"] = "在layout中會使用到這個標題";
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
}
<h2>Hello World</h2>
<!--要從controller傳入的值-->
<p>@ViewData["Talk"]</p>
<!--寫入HTML-->
@Html.Raw("<span>Hello Worlds</span>")
<!--插入其他view-->
@Html.Partial("../Home/About.cshtml")
<!--列出weakDays陣列中的值-->
<ul>
@foreach (var pd in weekDays)
{
<li>@pd</li>
}
</ul>
在這裡,我們會輸出 ViewData[“Talk”] 、寫入HTML ```Hello
接下來開啟 HelloworldController.cs,修改內容如下:
Controllers/HelloworldController.cs
CVT2HUGO: Worlds</span>```、
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication2.Controllers
{
public class HelloWorldController : Controller
{
public IActionResult Index()
{
ViewData["Talk"] = "Hi! My Friend";
//預設會對應瀏覽器位置 http://localhost:port/HelloWorld/ 來載入 "Views/HelloWorld/Index.cshtml"
return View();
//也可以寫成這樣
//return View("Views/HelloWorld/Index.cshtml");
}
}
}
CVT2HUGO: 插入其他view 在controllers裡面,如果不指定載入的View 則預設會根據網址上的位置來載入對應的view模板 當然,也可以自訂要載入的view
並且傳入ViewData[“Talk”] 至 view
運行結果如下:
參考:
ASP.NET Core MVC web app - (0) 安裝 [ 教學] (使用visual studio)
ASP.NET Core MVC web app - (1) Controllers [ 教學 ] (使用visual studio)
ASP.NET Core MVC web app - (2) Views [ 教學 ] (使用visual studio)
ASP.NET Core MVC web app - (3) Models [ 教學 ] (使用visual studio)