前言:View视图,MVC架构中的展现层,本文主要介绍了视图的默认文件存放路径、_ViewStart.cshtml和_ViewImports.cshtml、部分视图和视图组件
一、Controller控制器对应的View文件寻找路径
1、Controller返回的结果要放入view中进行渲染,需要现在工程目录下创建如下的文件路径
Views/控制器名,例如HomeController访问路径是 /Views/Home
2、先看下原先Controller代码
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using myfirstweb.models;
using myfirstweb.Services;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace myfirstweb.Controllers
{
public class HomeController : Controller
{
/*默认的控制器*/
// GET: /<controller>/
//public IActionResult Index()
//{
// return View();
//}
//新建属性
public IRepository<Student> _repository { get; }
//新建构造函数,从ioc容器引入服务
public HomeController(IRepository<Student> repository)
{
_repository = repository;
}
public IActionResult Mytest()
{
var st = new Student
{
Id = 10,
Firstname = "lin",
Lastname = "ys"
}; // 使用model
//return "setting by lys";
//return new ObjectResult(st); //返回的是一个json
return View(st); //寻找视图,默认寻找路径为 /Views/Home/Mytest.cshtml
}
public IActionResult Myservice()
{
var list = _repository.GetAll();
return View(list); //寻找视图,默认路径是 /Views/Home/Myservice.cshtml
}
}
}
当HomeController对应的方法return view的时候,会去调用默认的视图文件,例如 Mytest方法return view,会去寻找 Views/Home/Mytest.cshtml;如果Myservice方法return view,会去寻找 Views/Home/Myservice.cshtml
( 如果Controller名字为TaskController,view为People,则寻找的视图文件路径是 /VIews/Task/People.cshtml。总之寻找的路径是 /VIews/Controller名字/view名字.cshtml)
3、现在我们来看看对应的view
Myservice.cshtml
@model IEnumerable<myfirstweb.models.Student> //@model声明controller传入的数据类型,传入的是一个可枚举类型
<html>
<head>
<h1>this view page by lys</h1>
</head>
<body>
<h2>
@foreach (var st in Model) //Model代表从controller传入的数据
{
<ul>@st.Id</ul>
<ul>@st.Firstname</ul> //前面如果带有html的元素,使用Model的元素之前必须先用@引用
<ul>@st.Lastname</ul>
}
</h2>
</body>
</html>