Я использую встроенную сетку редактирования DevExtreme:
https://js.devexpress.com/Demos/WidgetsGallery/Demo/DataGrid/CollaborativeEditing/NetCore/Light/
Я использую CollaborativeEditing для реализации своей таблицы «Тестовые случаи», чтобы просмотреть ее как сетку редактируемых данных.
Это показывает сообщение об ошибке «Bad Gateway 503», я пытался удалить (объявление IHubContext из конструктора контроллера, ошибка исчезла, а сетка данных не была показана, она показывает нам «Данные <>», что-то вроде этого Как я могу показать сетку, что я должен добавить, чтобы увидеть вид сетки?
TestCases Контроллер:
[Route("api/[controller]")]
public class IHubContext : Controller
{
private readonly ApplicationDbContext _context;
private static readonly Random random = new Random();
public IHubContext( ApplicationDbContext context, IHubContext<DataGridCollaborativeEditingHub> hubcontext)
{
hubContext = hubcontext;
_context = context;
}
// private IHubContext<DataGridCollaborativeEditingHub> hubContext;
List<TestsExeResults> list = new List<TestsExeResults>();
public async Task<IActionResult> Index(int? id, int? id2)
{
ViewBag.id2 = id2;
ViewBag.id = id;
var applicationDbContext = new object();
if (id > 0)
{
applicationDbContext = _context.TestsExeResults
.Include(n => n.ProjectTests)
.Include(n => n.TestExcutions)
.Include(n => n.TestCases)
.Where(n => n.TestExcutionsTEId == id)
.OrderBy(n => n.PPublicationDate);
}
else
{
applicationDbContext = _context.TestsExeResults.Include(p => p.TestExcutions);
}
list = await ((IQueryable<TestsExeResults>)applicationDbContext).ToListAsync();
return View(await ((IQueryable<TestsExeResults>)applicationDbContext).ToListAsync());
}
[HttpGet]
public object Get(DataSourceLoadOptions loadOptions) {
return DataSourceLoader.Load(list, loadOptions);
}
[HttpPost]
public IActionResult Post(string values, string sessionId) {
var newTest = new TestsExeResults();
newTest.TERId2 = random.Next(list.Count, int.MaxValue);
JsonConvert.PopulateObject(values, newTest);
if(!TryValidateModel(newTest))
return BadRequest(ModelState.GetFullErrorMessage());
// db.Employees.Add(newEmployee);
// db.SaveChanges()
hubContext.Clients.All.SendAsync("insert", newTest, sessionId);
return Ok(newTest);
}
[HttpPut]
public IActionResult Put(int key, string values, string sessionId) {
var Test = new TestsExeResults();
JsonConvert.PopulateObject(values, Test);
Test.TERId2 = key;
if(!TryValidateModel(Test))
return BadRequest(ModelState.GetFullErrorMessage());
// db.SaveChanges();
hubContext.Clients.All.SendAsync("update", key, Test, sessionId);
return Ok(Test);
}
[HttpDelete]
public void Delete(int key, string sessionId) {
// db.Employees.Remove(employee);
// db.SaveChanges();
hubContext.Clients.All.SendAsync("remove", key, sessionId);
}
}
DataGridCollaborativeEditingHub.cs:
using Microsoft.AspNetCore.SignalR;
...
namespace DevExtreme.NETCore.Demos.Hubs
{
public class DataGridCollaborativeEditingHub : Hub
{
}
}