asp net core --- 视图View

前言: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: //
        //public IActionResult Index()
        //{
        //    return View();
        //}
 
        //新建属性
        public IRepository _repository { get; }
 
        //新建构造函数,从ioc容器引入服务
        public HomeController(IRepository 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  //@model声明controller传入的数据类型,传入的是一个可枚举类型
 


   

this view page by lys




   


        @foreach (var st in Model)   //Model代表从controller传入的数据
    {
       
    @st.Id
           
       
    @st.Firstname
   //前面如果带有html的元素,使用Model的元素之前必须先用@引用
       
    @st.Lastname

}
   


   

事半功倍

 

你可能感兴趣的:(dotnet)