用ASP.NET MVC开发通讯录系统:EF建表、CRUD与部署避坑
简介这是一份 C# ASP.NET 通讯录系统完整项目面向初次接触 .NET Web 开发的初学者帮助理解基于 Web 的联系人管理应用从界面到数据库的完整实现。项目使用 C# 与 ASP.NET Web Forms 构建服务器端逻辑SQL Server 数据库存储联系人信息涵盖增删改查、分组管理与登录验证等典型功能。压缩包共 92 个文件包含 27 个 .cs 源码文件、19 个 .aspx 页面文件、25 个 .gif 图片素材以及数据库文件、样式表和配置文件等整体大小约 5.53MB目录结构清晰便于按模块对照学习。目前已有 300 人下载学习。通过这套源码可以一边运行一边拆解页面事件、业务逻辑与数据库交互方式同时参考其 Visual Studio 2005 环境下的项目组织方式和 ADO.NET 数据访问写法是巩固 Web 开发基础的不错实例。1. 一个“C# ASP.NET 通讯录”为什么值得你亲手做一遍“C# ASP.NET 通讯录”是很多人学 Web 开发碰到的第一个完整项目但能把它做到能交付、能部署、别人敢往里录真数据的人并不多。大多数版本停在“本机跑得欢换个环境就白屏”“录十个联系人没事录到一千个就卡成幻灯片”的状态。这篇笔记把我平时做这类内部系统的完整套路讲清楚从字段设计、技术选型、EF 建表到增删改查、搜索分页、导出名单再把最常翻车的几个场景单独拎出来复盘。新手可以照着一步步做出能运行的项目熟手也能在参数设置和部署边界上找到有用的提醒。适合刚学完 C# 基础、想独立走通一个 Web 全流程的初学者。适合要把通讯录改造成团队内部工具但担心数据安全和维护成本的开发者。也会聊到上线前容易忽略的细节——那一部分对做过一两个项目的人同样有价值。2. 动手前先想清楚通讯录的信息模型与 ASP.NET 技术选型很多人打开 IDE 就写代码写到一半发现字段不够用、查询逻辑别扭再回头改表结构。通讯录虽然简单但信息模型和技术路线最好先定下来后面几乎所有代码都围绕这两个决定展开。2.1 联系人数据模型字段怎么定哪些是刚需联系人字段我通常按“必填 高频 扩展”三档来分。必填只有两个姓名和手机号。高频包括邮箱、公司、地址、生日、备注。扩展字段比如头像、分组、标签可以等第一版跑通后再加不要一开始就陷入字段设计的完美主义。下面是我常用的联系人表结构直接照着建即可字段C# 类型数据库类型说明Idintint 主键自增无业务意义主键Namestringnvarchar(20)联系人姓名GenderGender 枚举int0 未知1 男2 女Phonestringnvarchar(20)手机或座机号码Emailstringnvarchar(100)邮箱Companystringnvarchar(50)公司名称Addressstringnvarchar(200)通讯地址BirthdayDateTime?datetime 可空生日可空Remarkstringnvarchar(500)备注CreatedAtDateTimedatetime创建时间排序用手机号这里特别说一下我坚持用字符串而不是 bigint。原因有两个手机号可能带 86 前缀固话可能带分机号数值类型会丢掉开头的 0比如某些短号。另一个原因是搜索场景用户输入“138”就希望匹配所有以 138 开头的号码只有字符串才能方便地做 LIKE 查询。生日字段用可空类型 DateTime?因为现实里确实有人不愿意填生日。性别用枚举而不用 bool是因为很多表单需要“未设置”这个初始态bool 只有两个值会在页面下拉框里造成歧义。CreatedAt 看起来不起眼却是列表排序的稳定依据——联系人经常重名不能用姓名排序。这里有个新手容易踩的点给 Name 加唯一索引。通讯录不是用户系统多个同名人完全合法加唯一索引会导致第二个“张三”录不进去。唯一性约束只应该放在真正需要的地方比如后面章节要给手机号做去重时再加。2.2 ASP.NET MVC 还是 Web Forms我为什么选 MVC 5ASP.NET 生态里老项目很多是 Web Forms但新写的内部工具类项目我基本都选 MVC 5。两者本质差别在页面组织方式上下面是关键对比维度Web FormsMVC 5页面机制事件驱动 ViewState 回发请求驱动 Model 绑定HTML 控制力控件生成难调完全手写视图测试难度逻辑耦合页面难单测Controller 可独立测技能迁移转 .NET Core 学习成本高转 ASP.NET Core 几乎平迁通讯录这种以列表、表单、搜索为主要交互的系统MVC 的优势非常明显每个页面就是一个 Action请求参数通过 Model 绑定自动变成强类型对象省去 Request.Form[name] 这种字符串取值也天然规避了手工拼 SQL 的冲动。另外MVC 的 Razor 视图对 HTML 输出默认编码用户在备注里写

相关新闻

MFC自定义CFileDialog:双模兼容的文件对话框深度定制方案

MFC自定义CFileDialog:双模兼容的文件对话框深度定制方案

简介:本资源是一份面向MFC中级开发者的自定义文件对话框实战项目,聚焦解决标准CFileDialog缺乏图片预览功能的痛点,适用于图像处理类桌面应用的UI增强需求。压缩包共28个文件,含9个头文件(h)实现类声明与接…

2026/10/11 14:19:26 阅读更多 →
一天冲上日榜第 5:impeccable 的 616 星/24h 是怎么涨出来的

一天冲上日榜第 5:impeccable 的 616 星/24h 是怎么涨出来的

一天冲上日榜第 5:impeccable 的 616 星/24h 是怎么涨出来的 【免费下载链接】impeccable The design language that makes your AI harness better at design. 项目地址: https://gitcode.com/GitHub_Trending/im/impeccable 在 GitHub Trending 日榜上&…

2026/10/11 14:19:26 阅读更多 →
强到不行,智谱 AutoGML 升级后如何用一句话操作电脑和手机

强到不行,智谱 AutoGML 升级后如何用一句话操作电脑和手机

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:19:26 阅读更多 →

最新新闻

2027浙大EMBA提前批面试怎么准备?底层逻辑与实战策略全解析

2027浙大EMBA提前批面试怎么准备?底层逻辑与实战策略全解析

每年到了三四月份,总会有几位在企业里做到中高层的老朋友来找我聊同样的问题:2027年想试试浙大EMBA,提前批面试到底要不要报名?我的回答从来都很干脆——只要你自己评估下来基本条件达标,就一定要申。原因并不复杂&…

2026/10/11 15:08:55 阅读更多 →
海康威视闸机对接源码拆解:从ISAPI到串口调试实战

海康威视闸机对接源码拆解:从ISAPI到串口调试实战

简介:面向Java开发者的海康威视闸机对接程序源码,基于海康SDK实现智能闸机的设备连接、身份认证、开关控制、通行记录读取与状态监控,覆盖SDK引入、命令收发、事件监听、数据解析与存储等关键模块,适合门禁系统集成商或需要快速接…

2026/10/11 15:08:55 阅读更多 →
dsh-workbuddy-connect安装指南:版本前提与三步配置实战

dsh-workbuddy-connect安装指南:版本前提与三步配置实战

先说个大家可能都遇到过的情况:装一个工具,最烦的不是不会装,而是上来就一通操作,结果环境不对、版本对不上,报错一个接一个,最后也不知道是自己哪里弄错了。dsh-workbuddy-connect 这东西,名字…

2026/10/11 15:08:55 阅读更多 →
Codex+Obsidian打造AI第二大脑:个人知识库完整实战教程

Codex+Obsidian打造AI第二大脑:个人知识库完整实战教程

让AI接着你的积累干活:Codex+Obsidian个人知识库完整教程说实话,知识管理这件事,很多人一开始都搞反了。存了一堆笔记,收藏了一堆文章,最后真正用起来的可能不到两成。我也是在笔记越堆越多、却越找不着东西…

2026/10/11 15:08:54 阅读更多 →
视频配乐生成的核心:语义、时间与节奏对齐解析

视频配乐生成的核心:语义、时间与节奏对齐解析

做视频后期最磨人的环节,我始终认为是配乐。你在剪辑软件里把素材排好,镜头节奏对了,转场顺了,结果BGM一拖进去,味道完全不对。情绪像的,卡点卡不上;卡点准的,画面和音乐又各说各话。…

2026/10/11 15:08:54 阅读更多 →
造价软件加密锁驱动590/592与S4型2.4写锁工具安装避坑指南

造价软件加密锁驱动590/592与S4型2.4写锁工具安装避坑指南

简介:面向广联达深思S4 2.4软件用户的写锁工具包,主要针对安装590/592驱动、需在较长时间内稳定使用广联达与广材助手的工程造价、招投标及项目管理相关人员。工具通过写锁与锁号生成机制,可延长软件授权至2040年,适配老版本驱动环…

2026/10/11 15:07:54 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →