从零开始学习ASP.NET CORE(十二)视图和自定义视图

1、修改control

public class HomeController : Controller
    {
        private readonly IStudentRepository studentRepository;
        public HomeController(IStudentRepository _studentRepository) 
        {
            studentRepository = _studentRepository;
        }
        public string Index(int id)
        {
            return studentRepository.GetStudent(id).Name;
        }
        public IActionResult Detail()
        {
            Student student = studentRepository.GetStudent(1);
            return View(student);
        }
    }

直接运行,会发生下面报错,原因是没有发现相应的视图文件
在这里插入图片描述

2、添加视图

右键view方法,点击添加视图,添加自己需要的视图类型,生成如下目录
在这里插入图片描述
直接运行,结果如下
在这里插入图片描述

3、自定义视图

我们可以看一下view方法里面的重载
(1)不输入参数
(2)输入视图名
(3)输入视图名和模型
(4)输入模型
在这里插入图片描述
我们前面提到的是输入模型,因为没运用到模型,所以修改下面方法,运行无参数的方法,得到的是同一样的结果,

        public IActionResult Detail()
        {
            return View();
        }

我们重点讲一下输入视图名,这里我们加入一些其他的视图,目的是修改参数内容,可以获取不同路径的视图的功能
在这里插入图片描述
每个视图做类似下面的前端代码,这样返回结果我们好知道是什么

<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>文件是Views/Home/text.cshtml</h1>
    </body>
</html>

测试下面方式获取文件
(1)直接填写文件名称,不带路径,不带后缀,该方法只能获取路由路径文件夹下面的同路径文件

return View("text");

在这里插入图片描述

(2)直接填写文件名称,不带路径,带后缀,结果报错

return View("text.html");

(3)加入路径,带后缀

return View("ViewsText/text.cshtml");

在这里插入图片描述

(4)加入路径,不带后缀,结果报错

return View("ViewsText/text");

(5)加入绝对路径,~相当于根目录,带后缀

return View("~/ViewsText/text.cshtml");

在这里插入图片描述
(6)加入绝对路径,不带后缀,结果报错

return View("~/ViewsText/text");

(7)加入绝对路径,减少文件路径,不带后缀,结果报错

return View("~/text.cshtml");

(8)加入相对路径,不带后缀

return View("../../ViewsText/text");

在这里插入图片描述
(8)加入相对路径,带后缀,结果报错

return View("../../ViewsText/text.cshtml");

(9)加入相对路径,不带后缀,更换路径,由此和(7)可知相对路径加…就是从路由路径往前开始退,有多少个…就退多少

return View("../Text/text");

在这里插入图片描述

4、总结

  • 视图文件具有.cshtml的拓展名
  • 试图文件是带有嵌入Razor标记的HTML模板
  • 可能包含Controller提供给它的Model的业务数据
    在这里插入图片描述
  • View()或View(object model):查找与操作方法同名的视图文件
  • View(string viewName)
    • 可查询自定义名称的视图文件
    • 可以指定视图名称或视图文件路径
    • 视图文件路径可以是绝对路径,也可以是相对路径
    • 绝对路径必须指定.cshtml拓展名
    • 使用相对路径时,不用带拓展名.cshtml
  • View(string viewName,object model),结合上述两种
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值