明日方舟资料管理站
这是我高中时期自己一点点写出来的网站。前台能查干员、材料和敌人,后台也做了增删改查、图片上传和材料配置;当时没有 AI,基本就是边查资料边写。
这个网站是我高中时写的。那时候挺喜欢《明日方舟》,网上也经常看各种资料站,我就想试试自己能不能做一个。
刚开始其实只准备写几个展示页面,后面越写越多:既然有干员,就要有职业、星级和阵营;有了材料,还要记录每个干员精一、精二分别需要什么;数据多了以后,又觉得总不能每次都去数据库里手动改,于是把后台管理也做了。
这是一个 2020 年完成的个人项目,从前台、后台到数据库都由我独立完成。当时没有 AI,遇到问题基本就是自己查资料、自己调。
从展示页面到完整资料站
这个项目实际分成了前台、后台和数据库三块。前台给普通用户查资料,后台用来维护内容,两个部分共用一套 SQL Server 数据。
- 前台:包含首页、干员、材料、敌人、阵营和职业。列表支持分类筛选和分页,每项内容也有单独的详情页。
- 后台:可以添加、编辑和删除干员、敌人、材料、阵营与职业,也做了图片上传和干员图库管理。
- 数据库:一共设计了 17 个实体。干员、职业、阵营、材料之间不是写死的,而是通过表关系和 LINQ 查询组合出来。
功能设计:真正花时间的是把数据连起来
- 干员筛选和分页。可以按职业、星级和阵营筛选。敌人也能按类别、分组筛选,材料则按等级分类。现在看逻辑不算复杂,但这是我第一次自己把查询参数、数据筛选和分页串起来。
- 精一、精二材料配置。后台可以给每个干员分别配置精一和精二所需材料。前台详情页点击按钮后,会异步请求对应数据,不刷新整个页面就能切换材料。
- 图片上传和立绘切换。后台上传干员主图、精二立绘和其他图片;详情页可以直接切换查看。我还给页面写了鼠标悬浮和背景视差效果。
系统结构:前台、后台和数据库怎样配合
项目使用 ASP.NET MVC 5,整体流程是 Razor 页面 → MVC Controller → LINQ to SQL → SQL Server。Controller 接收筛选或详情请求,Model 里用 LINQ 查询数据库,再把结果交给 Razor 页面。后台的新增、修改和删除也走同一套结构。
我的复盘:第一次真正理解全栈
这份代码肯定不算成熟。比如管理员密码处理得很简单,权限校验、文件上传安全、异常处理和移动端适配都有很多可以重新做的地方;还有一些关卡相关的数据表和菜单,最后也没有真正完成。
不过我还是很想把它放进项目作品。不是因为它现在有多先进,而是因为它确实是我高中时自己一点点做出来的。也是从这个项目开始,我第一次比较完整地理解了数据库、后端、前台和后台之间到底是什么关系。
用到的技术
- C#
- ASP.NET MVC 5
- Razor
- LINQ to SQL
- SQL Server
- jQuery
- Bootstrap
- CSS
ASP.NET MVC 5 C# Razor
负责网站的主要结构。Controller 接收请求并组织数据,Razor 根据数据生成前台列表、详情页和后台管理页面。
LINQ to SQL SQL Server
保存干员、职业、阵营、材料等 17 个实体,并通过表关系查询筛选结果和精英化材料。
jQuery Bootstrap CSS
完成分页与基础布局,也用于不刷新页面切换精一、精二材料,以及立绘切换、悬浮和背景视差效果。
这是一个非商业同人学习项目,项目中使用的《明日方舟》相关素材版权归原权利方所有。