P4 建立Controller,使用Tag Helper

Posted wangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P4 建立Controller,使用Tag Helper相关的知识,希望对你有一定的参考价值。

使用MVC相关的技术。Razor Page属于单独的一种技术
技术图片
首先是添加了几个model,视频中没有讲,这里已经添加完了
技术图片
一个是Department
技术图片
Employee用DepartmentId和部门关联。性别用的是枚举,
技术图片
公司统计。,统计员工的数量,平均每个部门的人数,这个model就是做这个用的
技术图片
Employee表漏掉的一个属性叫做Fired表示是否被解雇了。。技术图片

Service文件夹

添加了两个服务
技术图片
里面有几个方法,GetCompanySummary方法是获得整个公司的整体情况。
技术图片
实现类
技术图片
在构造函数里面添加了三个部门
技术图片
GetAll方法这里用到了Task.Run在以后讲C#异步的时候会讲到,里面直接返回了部门的列表的AsEnumerable()
技术图片
添加的方法,是现有部门里面最大那个id+1。id设置完成后就放到集合里面。
技术图片
公司情况的方法。一个员工总数,一个是每个部门员工的平均数量。用Average算一下平均数量。技术图片

争对Employee的接口

技术图片
按照部门id把这个部门下的所有员工列出来。
技术图片
Employee具体的实现
技术图片
构造函数内添加一些数据
技术图片

技术图片

开除员工技术图片

注册服务

注册这两个服务
技术图片

把原来这个HomeController改成DepartmentController
技术图片
构造函数注入 IDepartmentService的实现类。注入后赋值给本地的一个只读的变量。。
技术图片
直接返回View文字是红色的 实际上编译并不会报错。这是因为没有找到Action对应的视图文件。,因为没有这个前端的页面。
技术图片
获取所有的部门并传到View里面
技术图片
添加部门的Action,这是添加页面,返回一个空的Modle
技术图片
提交的action
技术图片
判断传进来的Model是否是合法的
技术图片

添加成功后,跳转到Index的action。这里使用nameof有利于重构。里面写字符串也可以。技术图片

EmployeeController

里面具体的代码是博主写完直接粘贴进去的。
技术图片
注入了两个Service
技术图片
Index是列出某个部门下的员工,所以专递了一个部门的id
技术图片
取出所有的员工,并传递到View里面
技术图片
争对某个部门添加员工
技术图片

表单提交的Add方法
技术图片

跳转的时候传递参数,New一个匿名类,
技术图片
解雇员工的方法技术图片

创建Views层

技术图片
首先建立所有页面的模板 Shared文件夹
技术图片

技术图片
搜索layout
技术图片
这个页面的作用。例如有个网站,网站上面都有相同的菜单。所以所有页面就有共同的代码,我们把共同的就放在_layout.cshtml里面。
技术图片
现在想让_layout.cshtml作为其他所有页面默认的页面。搜索view start 名称默认就可以了。
技术图片
默认的代码,所有页面的母页面就是_layout
技术图片
F12ViewStart里面的_Layout就会自动跳转到_Layout.cshtml页面了。
技术图片
_Layout.cshtml里面写了一些代码。
技术图片
如果想在全局启动Tag Helper的话

技术图片
技术图片
这里面写的代码会自动添加到所有的View里面,这里我们为全局,也就是所有的View页面添加Tag Helper
技术图片
区分开发环境,这里就可以使用environment这个Tag Helper
技术图片
使用include是开发环境下标签内的代码是有效的。
技术图片
开发的时候加载不压缩的css文件
技术图片
这个Tag Helper是作用于图片,防止他被缓存,有时候图片换了,页面不做处理的话,再刷一下页面,图片还是原来的图片。
防止图片缓存就是在图片地址后面加一串数 英文叫Hash,每次请求的地址hash都不一样
技术图片
创建文件夹Department
技术图片
创建Razor View叫做Index.cshtml
技术图片
View里面什么都不写,这个时候回到我们的Controller里面。之前这里是红色,现在已经不是红色的了。
技术图片
运行程序,并没有找到页面。
把路由的默认值改成Department
技术图片
运行程序,可以正常显示出来了
技术图片
我们复制图片的网址,看到后面并没有跟一串字符串。这说明我们的TagHelper并没有起作用。
技术图片
我们引入Tag Helper的时候就出错了。
技术图片

技术图片
css路径有点问题
技术图片

技术图片

技术图片
重新运行后,css的路径算是加载正确了。

技术图片

结束




 

以上是关于P4 建立Controller,使用Tag Helper的主要内容,如果未能解决你的问题,请参考以下文章

针对SiS191 Ethernet Controller网卡 怎样设置才可以抓到vlan tag的包——在线等!

uni-app 172标签列表和标签用户列表

uni-app 172标签列表和标签用户列表

如何使用 Laravel 发出删除请求

fork开源代码后如何基于某个tag建立自己的branch

TortoiseSVN使用步骤和trunk,Branch,Tag详细说明