全球微头条丨个人博客留言板功能实现
ZY知识库留言板功能实现
前言
因为这个博客是用的大佬的开源项目,我也是用自己的想法改了很多东西,虽然可能写的不是很好,但是我自己想要的效果实现了,开源项目不就是用来学习的嘛,所以不能一层不变,之前首页改版、评论功能我都没有写文章,这次抽空更新了留言板功能,来水一篇文章。
留言板地址:ZY知识库 · ZY - 留言板 (pljzy.top)
(相关资料图)
留言类和回复类
首先我创建了如下2个类,类型无非就是int、string、DateTime,这里就不做多的解释了
留言类
字段名 | 解释 |
---|---|
Id | 主键 |
Name | 留言者昵称 |
留言者邮箱 | |
Message | 留言内容 |
Created | 留言时间 |
回复类
字段名 | 解释 |
---|---|
Id | 主键 |
MessageId | 留言类外键 |
Name | 回复者昵称 |
回复者邮箱 | |
Reply | 回复内容 |
Created | 留言时间 |
Service层实现
然后我创建了IMessagesService接口类,列举部分如下:
using msg = Personalblog.Model.Entitys.Messages;public interface IMessagesService{ //新增留言 Task SubmitMessageAsync(msg messages); //查询所有留言,分页列表 IPagedList GetAll(QueryParameters param);}
然后用MessagesService
类实现这个接口类:
public class MessagesService:IMessagesService{ private readonly MyDbContext _myDbContext; public MessagesService(MyDbContext myDbContext) { _myDbContext = myDbContext; } public async Task SubmitMessageAsync(Messages messages) { StringBuilder sb = CommentSJson.CommentsJson(messages.Message); messages.Message = sb.ToString(); messages.created_at = DateTime.Now; await _myDbContext.Messages.AddAsync(messages); await _myDbContext.SaveChangesAsync(); return messages; } public IPagedList GetAll(QueryParameters param) { return _myDbContext.Messages.Include(m => m.Replies).ToList().ToPagedList(param.Page, param.PageSize); }}
IPagedList
是一个分页插件,用NuGet下载X.PagedList/8.4.3
包CommentsJson
方法是用来处理quill
富文本编辑器传过来的内容,这里就不做解释了。
配置文件依赖注入
builder.Services.AddTransient
Controller层实现
public class MsgBoardController : Controller{ private readonly IMessagesService _messagesService; public MsgBoardController(IMessagesService messagesService) { _messagesService = messagesService; } // GET public async Task Index(int page = 1, int pageSize = 10) { MsgBoardList msgBoardList = new MsgBoardList() { PagedList = _messagesService.GetAll(new QueryParameters { Page = page, PageSize = pageSize }), ... }; return View(msgBoardList); } /// /// 新增留言 /// /// /// [HttpPost] public async Task SubMessage([FromBody]Messages messages) { if(messages.Message == null || messages.Message == "") return new ApiResponse(){Data = "请输入留言内容",Message = "请输入留言内容",StatusCode = 422}; if(messages.Name == null || messages.Name == "") return new ApiResponse(){Message = "请输入昵称~",StatusCode = 422}; if (messages.Email == null || messages.Email == "") return new ApiResponse(){Message = "请输入邮箱~",StatusCode = 422}; bool isValid = CheckEmail.CheckEmailFormat(messages.Email); if (!isValid) { return new ApiResponse(){Message = "邮箱格式错误~",StatusCode = 422}; } try { return new ApiResponse(){Data = GetHtml(await _messagesService.SubmitMessageAsync(messages)),Message = "留言成功",StatusCode = 200}; } catch (Exception e) { return new ApiResponse() { Data = "服务器异常!", Message = "服务器异常!", StatusCode = 500 }; } }}
因为是MVC项目所以控制器继承Controller
类,然后后台管理的接口则是继承ControllerBase
用于实现Restful
风格接口。
前端部分实现
留言列表 @foreach (var m in Model.PagedList) { @await Html.PartialAsync("Widgets/MsgBoxList",m) }
分布视图MsgBoxList
用于显示留言
分布视图MsgBoxReplyList
用于显示该留言是否有人回复
MsgBoxList
:
@model Personalblog.Model.Entitys.Messages @Model.created_at @Html.Raw(@Model.Message) @if (Model.Replies.Any()){ @await Html.PartialAsync("Widgets/MsgBoxReplyList",Model.Replies)}
利用ajax请求发送留言
部分代码
$.ajax({ url:"/MsgBoard/SubMessage/", type:"post", data:JSON.stringify({ "Name":""+Name+"", "Email":""+Email+"", "Message":""+Content+"" }), contentType: "application/json", success:function (data){ if (data.statusCode === 200){ alert(data.message, "success") const CommentList = document.getElementById("CommentList") const html = data.data CommentList.insertAdjacentHTML("beforeend", html); clearInput() }else{ alert(data.data, "danger") } $("#btnComent").prop("disabled", false); }, error:function(xhr,status,error){ $("#btnComent").prop("disabled", false); if (xhr.status === 429){ alert("请求过于频繁,请稍后再试。","warning") }else if (xhr.status === 422){ alert(xhr.responseJSON.message,"warning") } else{ alert("服务器异常,请稍后再试!!!","danger") } } })
留言板效果图
结尾
上述内容就是对留言板功能的大体实现,总的来说,这是一个留言板的简单实现。
标签:
下一篇:最后一页
- 全球微头条丨个人博客留言板功能实现
- 橘子英语单词_橘子英语|全球报资讯
- 考生腿部术后行动不便 多方接力暖心送考
- 东莞信用贷款有哪些优势?_资讯推荐|世界热门
- 用小说法,而以记史
- 每日信息:欧阳靖维护欧阳娜娜:跟她合作绝对是我的荣幸
- 环球快资讯:6-3、6-4、6-0!鲁德闯进法网决赛,兹维列夫坦言心服口服
- 网络营销人员应具备哪些能力(作为一名网络营销人员应该掌握哪些知识与技能)|世界快讯
- 【全球报资讯】动画电影《疯狂小世界》金日全国影院点映,本周末全国点映
- 就在北虹桥,为司机提供更好服务!这个超级充电站开门迎客-环球微头条
- 时讯:行拘!广州番禺警方通报男子在女厕门口偷拍
- 天天热议:全民体育健身(全民体育)
- 简易逐帧动画(简单的逐帧动画素材)
- 梅西乘私人飞机抵达北京!开启个人第7次中国行
- 上午9点,球王来了!梅西抵达北京,第7次来中国,却无缘交手国足
- 红酒最佳伴侣是指什么?-世界快讯
- 中国文学书籍大全_文学书籍大全 天天讯息
- 就离谱!甜妹竟然成了恶女标配?
- 靴型心见于什么病_梨形心见于什么病 全球微资讯
- 超好听的qq分组符号(qq分组名称唯美带符号)
- 当前通讯!什么是独立法人资格的企业(什么是独立法人)
- 每日观点:科普图解 | 筑牢生态屏障!一图看懂我国防沙治沙新成就
- 全球动态:陕西西安推动“十里沣河”文旅深度融合古老沣河涌动新活力
- 权迎升作品 权迎升
- 恭喜!香港知名女星宣布二胎产子,富豪丈夫抱着儿子像抱着孙子 焦点精选
- 在平面直角坐标系中 已知点A 负根号5(在平面直角坐标系中 已知点a)
- 【世界报资讯】国家防总启动防汛四级应急响应 派工作组赴广西福建指导救灾
- 普京、泽连斯基发声!
- 天天日报丨国宝画重点丨上天入海,到处“出差”!这件宝贝可不得了
- 天天观速讯丨买二手房后发现房屋漏水怎么办(房屋漏水怎么办)
- 小学一年级诗歌朗诵稿(一年级诗歌朗诵比赛稿)
- 全球热推荐:逮捕和批捕有何种差别
- 天天热讯:2023高考今日落幕,多地公布志愿填报时间
- 全球观点:win7一开机就蓝屏怎么解决
- 购买凤头鹰做补品,结果…… 世界观天下
- 天天热议:洛克王国云孔外侨(洛克王国云外孔桥怎么过)
- 实时:奥运会运动项目简笔画(奥运会运动项目)
- 最新快讯!坚守“可靠”坦克Hi4-T 当下新能源越野的更优解
- 当前观察:苍穹巨灵·内蒙古篇
- 今日起 你想要的下铺可在线选啦!覆盖全国230趟列车
- 直击2023中国经济传媒大会丨中国经济体制改革研究会副会长樊纲:复苏正在进行中 我们需要耐心-天天速看
- 思明区政务服务中心“政务智能办”专区启用 世界热资讯
- 忽如一夜春风来千树万树梨花开赏析 忽如一夜春风来千树万树梨花开这是哪首诗里的_世界今亮点
- 国产CPU正式量产交付 并出口国外
- 张靓颖的瓜爆了,这闹的也太大了
- 天天热点评!龚天鹏7月再推新作 从“诗情画意”里看见民族与世界的对话
- 2023高考今日落幕,多地公布志愿填报时间_今日要闻
- 专家企业家齐聚哈尔滨 共谋人工智能引领龙江数字经济发展-世界快看
- 刘涛和于和伟演的什么电视剧 刘涛和于和伟主演的电视剧-全球看点
- 刘奕君:逆反大叔的坚韧
-
高质量发展调研行 | 在智慧港口见证大湾区经济活力——广州南沙港走访一线见闻 快消息
提到港口,你会想到什么?头戴安全帽的工人在操作吊机,还是一辆辆卡车
-
今日聚焦!广汇汽车与工行江西省分行签署战略合作协议
广汇汽车副总裁兼财务总监卢翱表示,扩大汽车消费是今年以来国家推进经
-
每日观察!南通非遗购物节开市 具有本土特色的近百个摊位亮相
畅享非遗购,探访非遗味。在6月10日“文化和自然遗产日”到来之际,南
-
当前观点:特斯拉老对手准备进军中国市场,美系车企能否走出销量困局
美国的造车新势力也想到中国市场分一杯羹?6月7日,有消息称前集度汽车
-
世界速讯:景德镇古陶瓷基因库“扩容”
央广网景德镇6月10日消息(记者王一凡通讯员程万海伍海燕)6月9日,记
-
新疆男篮“处罚期”结束 周琦转会问题或有解
9日上午,中国篮协官方宣布,即日起恢复新疆广汇篮球俱乐部有限公司注
-
健康到家,您今日饮咗未?|世界独家
为了延续益力多优质的家庭配送服务,把健康美味的产品呈送给广大客户,
-
【世界快播报】社交综艺为何能成爆款
记者 师文静在第二季节目中成功打造“尴尬九分钟”名场面的《五十公里
-
苍穹巨灵·内蒙古篇 环球头条
苍穹巨灵·内蒙古篇
-
俄央行维持7.5%基准利率不变
俄罗斯央行9日宣布,将基准利率继续维持在7 5%。消息说,鉴于通胀压力
-
四川阿坝州茂县发生3.2级地震-新视野
央视新闻客户端报道中国地震台网正式测定:06月10日10时52分在四川阿坝
-
中国电科发布生成式人工智能大模型“小可”_世界头条
据中国电科消息,6月9日,中国电科旗下电科太极在京正式发布生成式人工
-
三星正开发自有AI大语言模型 已投入全部GPU资源_环球热闻
【CNMO新闻】近日,据韩媒报道,三星电子于本月初已经正式开启了大语言
-
天天微动态丨怎么把牌飞出去(如何把牌飞回来)
首先,飞纸牌的关键是手法,很多人在刚开始飞的时候总喜欢夹着一张牌,
-
【原】【佛心收藏】酒瓶·陶罐燕南春酒 酒篓造型 礼盒包装 红色缎带上有“君欲品美酒,燕南春正浓”的诗句和“河北燕南春酒业有限公司”字样 天天简讯
【佛心收藏】酒瓶·陶罐燕南春酒 酒篓造型 礼盒包装 红色缎带上
-
时讯:2023世界动力电池大会在宜宾开幕
6月9日上午,2023世界动力电池大会开幕大会在四川宜宾举行。本次大会主
-
美国夫妇为钱太多发愁!他们在地下室发现100万枚上世纪铜币,但银行拒绝兑换
美国一对夫妇正在为钱太多而发愁。据英国广播公司6月9日报道,美国加利
-
全球热资讯!征信报告怎么看自己欠多少钱_征信报告怎么看
1、首先,通过报表表头的查询请求时间和报表时间确定报表的时效性。2、
-
大陈岛船票网上预订电话_大陈岛船票网上预订 全球热推荐
1、普通票70一人,只有甲午岩要10元门票,但看风景绕岛要包车,大概在1
-
小茴香的功效与作用及禁忌是什么_小茴香的功效与作用及禁忌-观天下
1、促进消化茴香中含有的茴香油,可以刺激人的肠胃,能加快消化液分泌
-
世界快看:纷纷上调!事关中国
在跨国企业高管再次掀起访华热之际,国际机构则掀起了另外一种热潮:上
-
儿童脸上有白块缺什么微量元素_儿童脸上有白块缺什么_当前滚动
1、病情分析:孩子脸上出现白斑,最常见的是白色糠疹,表现为散在的色
-
【鬼骑吧汉化组】恶灵骑士V10#10:美国梦魇 全球快报
简介——在芝加哥地下血淋淋的隧道里,在地狱支柱的角坛上,阴影之国的
-
热点!想学室内设计怎么入门在家自己学_室内设计初学者如何入门
1、1。2、您要学习的基础内容有,污染学,工程力学,光学,人体工程学
-
白兆山风景区有哪些_白兆山风景区
1、白兆山又名碧山,位于湖北省安陆市西北烟店镇和雷公镇交界处,距市
-
cheatengine怎么用电脑下载 cheatengine怎么用 焦点
今天来聊聊关于cheatengine怎么用电脑下载,cheatengine怎么用的文章,
-
《中国证券金融股份有限公司转融通业务规则(试行)(2023年6月修订)》发布
中国证券金融股份有限公司对《中国证券金融股份有限公司转融通业务规则
-
黄浦艺见丨“演艺大世界·2023中芭上海夏日演出季”将在上海大剧院上演
6月底,由上海文广演艺集团和中央芭蕾舞团联袂打造的“演艺大世界·202
-
【环球播资讯】苏奥传感:特定股东拟合计减持不超4%股份
苏奥传感:特定股东拟合计减持不超4%股份
-
【全球新视野】垣曲英言镇到村工作大学生夏收一线显身手
当前正值夏收关键时节。6月6日,垣曲县英言镇到村工作大学生和选调生响
-
49岁林志玲近况曝光!穿红裙出席活动身材好,产后五官更漂亮了
林志玲近况曝光6月份,知名女星林志玲带着日本老公回到台湾居住,并且
-
每日视讯:2023年京津冀农业科技协同创新大会在石家庄市召开
6月7日,2023年京津冀农业科技协同创新大会在石家庄市召开。会上发布了
-
河南:2023年高考成绩6月25日公布 志愿填报6月26日开始
来源:河南省教育厅考试结束,评卷接棒,2023年河南高考将转入网上评卷
-
江西省赣州市2023-06-08 19:46发布暴雨黄色预警 环球今日报
一、江西省赣州市天气预报1、瑞金市气象台2023年06月08日19时46分发布
-
【聚看点】积极向上的词语有哪一些_积极向上的词语
1、展开全部夜以继日[yèyǐjìrì]生词本基本释义晚上连着白天。2、形
-
共同药业:6月8日融资买入111.22万元,融资融券余额7133.07万元
6月8日,共同药业(300966)融资买入111 22万元,融资偿还125 11万元,
-
ipad无法连接到appstore如何解决_iPad 无法连接到appstore怎么解决_天天聚看点
1、解决步骤如下;1 手机进入设置>WIFI(无线局域网),点击已连接的WI
-
海南航空出台女乘务员体重限制规定,超重10%立即停飞减重
海南航空最近发布了一份通知,对女性空中乘务员的体型和体重进行不同等
-
世界百事通!跟腱疼怎么快速恢复(跟腱疼)
今天小编宋丹来为大家解答以上的问题。跟腱疼怎么快速恢复,跟腱疼相信
-
【速看料】董家太极_关于董家太极的简介
1、《董家太极》是2012年1月出版的图书,作者是余功保。平装284页。本
-
预拌砂浆的比重(预拌砂浆比重)
拌砂浆的比重,预拌砂浆比重这个问题很多朋友还不知道,来为大家解答以
-
今日快讯:大面积开镰收获 全国麦收进度已过六成
农业农村部小麦机收调度显示,当前全国麦收进度过六成,进入作业高峰期
-
环球聚焦:有关月亮的诗句 古诗大全 有关月亮的诗句
今天来聊聊关于有关月亮的诗句,古诗大全,有关月亮的诗句的文章,现在
-
天天时讯:月华咒刃国服有吗(月华咒刃)
导读1、在S4赛季开始的时候,这个道具作为一个大件装备被删除了,不划
-
天天微速讯:如何用笔记本电脑做wifi_如何用笔记本电脑做wifi热点
在工作或生活中,大家经常会在一起共享上网,在通常情况下,会用路由器
-
每日头条!科笛-B(02487)香港公开发售及国际发售均获轻度超额认购 每股定价21.85港元
科笛-B(02487)公布配发结果,公司拟全球发售2128 18万股,香港公开发售
-
施秉县:保家卫国立功受奖 喜报回家锣鼓鸣响
庆功的锣鼓敲起来,欢快的秧歌扭起来。5月5日,施秉县委常委、县人武部
-
全球快看点丨真眼是什么_真眼
1、真眼,围棋术语。2、围棋中本方几个连接在一起的棋子围住一个或两个
-
焦点热门:华贸物流:6月8日融资买入1183.75万元,融资融券余额1.84亿元
6月8日,华贸物流(603128)融资买入1183 75万元,融资偿还903 12万元
-
每日看点!美的集团大宗交易平台共发生2笔成交,合计成交量344.5万股
美的集团6月8日大宗交易平台共发生2笔成交,合计成交量344 5万股,成交
X 关闭
X 关闭