ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 07. View的Model 和 Tag Helpers

student添加一个属性BirthDate

然后把生成数据的地方,字段也加上

建立ViewModel


list转换为ViewModel



进一步改进代码

StudentViewModel

HomeIndexViewModel修改为只有StudentModel一个集合的属性



HomeIndexViewModel相当于是一个用于输出的Model


详情页
查询详情,一般是根据一个主键去查找。这里我们先直接把这个id返回去

mvc会从多个地方找id这个参数去接受。首先会先从路由里面找id这个参数

测试下,说明mvc框架是可以从这个地址里面找到这个参数的

如果参数不是int类型的就找不到了


现在接口里面创建。它返回的类型应该是T,接收一个参数int id

实现类里面去实现这个方法

把学生的list对象移动到外面外面了

把查出来的数据返回给前台View

使用Resharper去创建这个视图页面

生成的文件夹不对,把它挪进去


直接输入地址测试,路由参数的形式

产讯字符串的形式,/?id=1这种形式也可以

如果都有,那么取的是1

不信,可以加断点调试一下。所以路由的参数要比queryString的参数 高

抛出异常
我们只有三条数据,那么传id为5就报错了

这里的Model是null,所以会发生空值异常

在Controller里面判断,如果没找到数据就跳转回列表页面

列表页加上超链接

跳不过去,转换的时候id没有赋值

controller里面这里查询的时候漏了id

再次点击就可以跳转了

以前是使用HtmlHelper

第三个参数是Controller,因为这里使用的是自己当前这个Controller,所以只需要写上第二个参数Action的名称就可以了

格式化代码

使用匿名类加上参数

点击可以成功的跳转

TagHelper
使用tagHelper之前需要先建文件
在View下新建_ViewImports.cshtml.这个View不渲染任何东西,相当于提供了一堆指令,告诉这个Razor引擎这些视图应该怎么被渲染,并且这些View应该有哪些功能。有点引用的意思


加上这句代码,就可以使用TagHelper了

所有以asp-开头的都是TagHelper


如果参数叫做name,就可以这么去写




在详情页面,增加返回按钮


ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 07. View的Model 和 Tag Helpers的更多相关文章
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器
在MVC的请求管道 并不是 asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置
视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下
ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件
注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库
前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps
VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介
新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由
视频地址: https://www.bilibili.com/video/av38392956/?p=5 这里面就包含了MVC相关的库 可以通过打开右侧的Nuget库进行查看 这里修改下 ,只需要静态 ...
随机推荐
- PR物料KFF弹出LOV - WHERE条件重写
PROCEDURE event (event_name VARCHAR2)IS---- This procedure allows you to execute your code at specif ...
- android 获得SDCard信息
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...
- [Rust] Pass a JavaScript Function to WebAssembly and Invoke it from Rust
In some cases it’s useful to be able to invoke a JavaScript function inside Rust. This session showc ...
- Android开发系列(二十一):Spinner的功能和使用方法以及实现列表选择框
Spinner是一个列表选择框.相当于弹出一个菜单供用户进行选择. Spinner继承AdapterView Spinnet支持的XML的属性: android:entries:使用数组资源设置该下拉 ...
- BeagleBone Black Industrial 工业版介绍
前言 在电子发烧友论坛看到有Beaglebone Black Industrial版的试用,这里介绍一下这块开发板. BBB是开源硬件,原理图.BOM等都开放下载,所以也有诸多兼容板. BBB兼容产品 ...
- lua 获取当前执行目录 lfs 库
lua lfs 库 lfs.attributes(filepath [, aname]) 获取路径指定属性 lfs.chdir(path) 改变当前工作目录,成功返回true,失败返回nil加上错误信 ...
- c程序设计语言第一章4
(昨天网络出现了问题,导致这篇没来得及上传,再次补上,今晚照常上传笔记) 练习1.19编写函数r e v e r s e ( s )将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个 ...
- iOS清理WebView的缓存
NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; ...
- 例子:两个表根据productID合并
- VC FTP服务器程序分析(三)
CControlSocket类的分析,CControlSocket类的内容比较多,为什么呢.因为通信控制命令的传输全部在这里,通信协议的多样也导致了协议解析的多样. 1.OnReceive 其大致说 ...