带有ASP.NET Core的dhtmlxGantt怎么实施Web API
发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,本篇内容主要讲解"带有ASP.NET Core的dhtmlxGantt怎么实施Web API",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"带有ASP.NE
千家信息网最后更新 2024年10月24日带有ASP.NET Core的dhtmlxGantt怎么实施Web API
本篇内容主要讲解"带有ASP.NET Core的dhtmlxGantt怎么实施Web API",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"带有ASP.NET Core的dhtmlxGantt怎么实施Web API"吧!
实施Web API
现在该进行实际的REST API实施了。转到Startup.cs并启用MVC路由(如果尚未启用):
启动文件
public void ConfigureServices(IServiceCollection services){ services.AddMvc(); services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));} //The method is called by the runtime. Use it to configure HTTP request pipeline.public void Configure(IApplicationBuilder app, IHostingEnvironment env){ if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseDefaultFiles(); app.UseStaticFiles(); app.UseMvc(); }
添加控制器
创建Controllers文件夹并创建三个空的API Controller:一个用于Tasks,另一个用于Links,另一个用于整个数据集:
任务控制器
让我们为Tasks创建一个控制器。它将为甘特任务定义基本的CRUD操作。
这个怎么运作:
在GET请求中,任务是从数据库中加载的,输出是任务的数据传输对象;
在PUT / POST请求中,任务作为WebAPITask类来自客户端。它们在dhtmlxGantt中以这种方式表示。因此,您应该将它们转换为EntityFramework(任务类)的数据模型的格式。之后,可以将更改保存在DatabaseContext中。
控制器/ TaskController.csusing System.Collections.Generic;using System.Linq;using Microsoft.EntityFrameworkCore;using Microsoft.AspNetCore.Mvc;using DHX.Gantt.Models; namespace DHX.Gantt.Controllers{ [Produces("application/json")] [Route("api/task")] public class TaskController : Controller { private readonly GanttContext _context; public TaskController(GanttContext context) { _context = context; } // GET api/task [HttpGet] public IEnumerableGet() { return _context.Tasks .ToList() .Select(t => (WebApiTask)t); } // GET api/task/5 [HttpGet("{id}")] public WebApiTask Get(int id) { return (WebApiTask)_context .Tasks .Find(id); } // POST api/task [HttpPost] public ObjectResult Post(WebApiTask apiTask) { var newTask = (Task)apiTask; _context.Tasks.Add(newTask); _context.SaveChanges(); return Ok(new { tid = newTask.Id, action = "inserted" }); } // PUT api/task/5 [HttpPut("{id}")] public ObjectResult Put(int id, WebApiTask apiTask) { var updatedTask = (Task)apiTask; var dbTask = _context.Tasks.Find(id); dbTask.Text = updatedTask.Text; dbTask.StartDate = updatedTask.StartDate; dbTask.Duration = updatedTask.Duration; dbTask.ParentId = updatedTask.ParentId; dbTask.Progress = updatedTask.Progress; dbTask.Type = updatedTask.Type; _context.SaveChanges(); return Ok(new { action = "updated" }); } // DELETE api/task/5 [HttpDelete("{id}")] public ObjectResult DeleteTask(int id) { var task = _context.Tasks.Find(id); if (task != null) { _context.Tasks.Remove(task); _context.SaveChanges(); } return Ok(new { action = "deleted" }); } }}
链接控制器
接下来,您应该为Links创建一个控制器:
控制器/LinkController.csusing System.Collections.Generic;using System.Linq;using Microsoft.EntityFrameworkCore;using Microsoft.AspNetCore.Mvc;using DHX.Gantt.Models; namespace DHX.Gantt.Controllers{ [Produces("application/json")] [Route("api/link")] public class LinkController : Controller { private readonly GanttContext _context; public LinkController(GanttContext context) { _context = context; } // GET api/Link [HttpGet] public IEnumerableGet() { return _context.Links .ToList() .Select(t => (WebApiLink)t); } // GET api/Link/5 [HttpGet("{id}")] public WebApiLink Get(int id) { return (WebApiLink)_context .Links .Find(id); } // POST api/Link [HttpPost] public ObjectResult Post(WebApiLink apiLink) { var newLink = (Link)apiLink; _context.Links.Add(newLink); _context.SaveChanges(); return Ok(new { tid = newLink.Id, action = "inserted" }); } // PUT api/Link/5 [HttpPut("{id}")] public ObjectResult Put(int id, WebApiLink apiLink) { var updatedLink = (Link)apiLink; updatedLink.Id = id; _context.Entry(updatedLink).State = EntityState.Modified; _context.SaveChanges(); return Ok(new { action = "updated" }); } // DELETE api/Link/5 [HttpDelete("{id}")] public ObjectResult DeleteLink(int id) { var Link = _context.Links.Find(id); if (Link != null) { _context.Links.Remove(Link); _context.SaveChanges(); } return Ok(new { action = "deleted" }); } }}
数据控制器
最后,您需要为数据操作创建一个控制器:
控制器/DataController.csusing System.Collections.Generic;using System.Linq; using Microsoft.AspNetCore.Mvc;using DHX.Gantt.Models; namespace DHX.Gantt.Controllers{ [Produces("application/json")] [Route("api/data")] public class DataController : Controller { private readonly GanttContext _context; public DataController(GanttContext context) { _context = context; } // GET api/data [HttpGet] public object Get() { return new { data = _context.Tasks.ToList().Select(t => (WebApiTask)t), links = _context.Links.ToList().Select(l => (WebApiLink)l) }; } }}
都准备好了。您可以运行该应用程序,并查看完整的Gantt。
到此,相信大家对"带有ASP.NET Core的dhtmlxGantt怎么实施Web API"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
控制器
控制
任务
数据
内容
实际
文件
学习
实用
更深
接下来
三个
兴趣
实用性
客户
客户端
对象
尚未
应用程序
操作简单
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
100万人服务器多大
有道网络技术上海
ad域dns服务器需要备份吗
我的世界服务器关服
如何注意网络安全简短
日本软件开发落后么
桌面软件开发是做什么的
定制软件开发温州
软件开发手机
如何管理小米云服务器
影楼数据库
宁波泰吉网络技术有限公司
学java软件开发好吗
虹口区本地软件开发推荐货源
sql数据库排序查询结果的方法
福建pdu服务器电源厂商有哪些
安徽软件开发定制
服务器怎么装双系统
南昌鲲鹏服务器什么价格
敏捷软件开发的理解
阿克苏软件开发销售电话
网络安全教材扫描版
肥西数据网络技术开发概况
远程访问服务器上的dll
管理节点服务器技术方案
软件开发学校提供的工作好吗
服务器功耗
三级数据库技术教材电子版
软件开发合同 简版
网络安全事件的处理流程