.Net Core Razor 4. VS2022 + Core6.0 + Razor 设置model特性改变显示的属性名称,通过@page指令改变路由规则,
通过Model的特性修改显示的内容/规则
目前在Index页面上,显示的表头都是model的字段名,在实际项目中通常不会这么做,这里我们修改一下Model部分来让表头显示的更加直观。
1.引入System.ComponentModel.DataAnnotations.Schema,也可以事后根据提示自动添加。
2.[Display(Name = "标题")],指定属性显示的名称为 Name = “xxx” 的内容。
3.[DataType(DataType.Date)],限制日期字段只显示到年月日。
4.[Column(TypeName ="decimal(18,2)")],则是为了让价格字段能正确映射到数据库的货币类型。
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace StandardCoreStudy.Models { public class Movie { /// <summary> /// ID /// </summary> public int ID { get; set; } /// <summary> /// 标题 /// </summary> [Display(Name = "标题")] public string Title { get; set; } = string.Empty; /// <summary> /// 发布日期 /// 表示发布日期只需要日期,不需要精确到时间部分 /// </summary> [Display(Name ="发行日期")] [DataType(DataType.Date)] public DateTime ReleaseDate { get; set; } /// <summary> /// 类型 /// </summary> [Display(Name = "类型")] public string Genre { get; set; } = string.Empty; /// <summary> /// 价格 /// </summary> [Display(Name = "票价")] [Column(TypeName ="decimal(18,2)")] public decimal Price { get; set; } } }
修改Detail详情页的路由规则
目前在列表页index上,详情页的链接规则是
<a asp-page="./Details" asp-route-id="@item.ID">Details</a>
生成的html代码是
<a href="/Movies/Details?id=1">Details</a>
可以修改@page指令来变成 /Movies/Details/1
打开详情页Detail.cshtml,在头部修改代码
@page "{id:int?}"
生成后,可以发现指向详情页的链接格式已经自动更新成 /Movies/Details/id这种了,而修改edit和删除delete的 链接格式 则没有变化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-05-11 MongoDB 学习4 文档 新增,修改,删除