using System.Collections.Generic; using DAL; using Models; namespace BLL { public class NewsManager { private NewsService objService=new NewsService(); /// <summary> /// 添加新闻 /// </summary> /// <param></param> /// <returns></returns> public int AddNews(News news) => objService.AddNews(news); /// <summary> /// 修改新闻 /// </summary> /// <param></param> /// <returns></returns> public int ModifyNews(News news) => objService.ModifyNews(news); /// <summary> /// 删除新闻 /// </summary> /// <param></param> /// <returns></returns> public int DeleteNews(string newssId) => objService.DeleteNews(newssId); /// <summary> /// 获取指定数量的新闻列表 /// </summary> /// <param></param> /// <returns></returns> public List<News> GetNews(int count) => objService.GetNews(count); /// <summary> /// 根据ID获取新闻信息 /// </summary> /// <param></param> /// <returns></returns> public News GetNewsById(string newssId) => objService.GetNewsById(newssId); /// <summary> /// 获取所有的新闻分类 /// </summary> /// <returns></returns> public List<NewsCategory> GetCategories() => objService.GetCategories(); } }
3.添加一个控制台项目用来测试
添加需要的引用
dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Pomelo.EntityFrameworkCore.MySql
DbContext中的数据库连接字符串添加回去
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if(!optionsBuilder.IsConfigured) { optionsBuilder.UseMySql("Server=192.168.30.110;DataBase=HotelWebDb;User=sa;Pwd=110;",x => x.ServerVersion("5.5.64-mariadb")); } }
编写测试代码
News news=new News() { NewsContent="你好这是一个测试新闻内容", NewsTitle="测试新闻", CategoryId=1 }; Console.WriteLine(objNews.AddNews(news));
启动调试
选择启动项目有两种方法
①通过solution explorer 插件选择
②通过配置launch.json 文件启动
然后修改启动程序入口就可以了
{ "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceFolder}/UnitTestPro/bin/Debug/netcoreapp3.1/UnitTestPro.dll", "args": [], "cwd": "${workspaceFolder}", "stopAtEntry": false, "console": "internalConsole" },
还要修改task文件,否则测试项目中新加的代码不能被执行。
结果查验
结果符合预期
注意事项
修改新闻调用的方法不支持部分属性修改,如果对象属性不设置,那么没有设置的字段被设置为空。
后面有字段部分修改的方法。
News news=new News() { Id=1008, NewsContent="修改新闻的内容", NewsTitle="这是被修改的新闻标题", }; Console.WriteLine(objNews.ModifyNews(news));
4.编写菜品预订
5.编写招聘
6.编写投诉和建议
7.管理员登录
类似不再贴代码
四、前端UI实现1.完成前端Html代码的编写
不多说
2.完成MVC项目中控制器和视图的文件添加
这个只能手动添加,不像VS有模板可用
3.复制网站的静态资源
asp.net core 网站静态资源都是放在wwwroot目录的,并且文件名一般是小写。
4.在视图中引用资源
MVC框架可以直接识别在wwwroot中的静态资源,不用写显示的写出目录名。
<link href="https://www.jb51.net/~/lib/bootstrap/dist/css/bootstrap.min.css" /> <link href="https://www.jb51.net/~/css/site.css" />
5.编写动作方法
public IActionResult Index() { return View(); }
6.添加视图
7.启动调试
首页效果图
8.视图与控制器之间传递数据
使用ViewData
视图的网页标题可以使用这种方式传递
public IActionResult Index() { ViewData["title"]="好运来酒店"; ViewBag.list=new NewsManager().GetNews(4); return View(); }
视图中引用数据