【发布时间】:2020-11-28 18:55:37
【问题描述】:
这个已经让我发疯了几个星期了,所以如果有人能指出我正确的方向,我将非常感激。
我正在使用 .net core 和 Razor Pages 开发一个相对简单的 CRUD 应用程序。
我已经使用 Visual Studio 2019 社区启动了一个新应用程序,并且我要求提供标准 CRUD 选项。通过一些调整和数据库创建,应用程序运行良好。这是名为“类别”的表的标准 .net 核心表显示
但是,我想要一个更漂亮的表格,所以我尝试使用来自一些 JavaScript 的 ajax 调用。
在我的页面上
<div class="col-12 border p-3">
<table id="DT_load" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>In Use?</th>
</tr>
</thead>
</table>
</div>
</div>
@section Scripts
{
<script src="~/js/categoryList.js"></script>
}
这指向这个Javascript
var dataTable;
$(document).ready(function () {
loadDataTable();
alert($('#DT_load').html())
});
function loadDataTable() {
dataTable = $('#DT_load').dataTable
({
"ajax":
{
"url": "/controllers/categories",
"type": "GET",
"datatype": "json"
},
"columns":
[
{ "data": "id", "width": "50%" },
{ "data": "category", "width": "50%" },
{ "data": "inUse", "width": "50%" },
],
"language":
{
"emptyTable": "no data found"
},
"width": "100%"
});
}
这应该............然后访问这个控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Investments10.Models;
namespace Investments10
{
[Route("api/Category")]
//[Route("api/CategoryController")]
[ApiController]
public class CategoriesController : ControllerBase
{
private readonly aspnetInvestments1053bc9b9d9d6a45d484292a2761773502Context _context;
public CategoriesController(aspnetInvestments1053bc9b9d9d6a45d484292a2761773502Context context)
{
_context = context;
}
// GET: api/Categories
[HttpGet]
public async Task<ActionResult> GetAllCategory()
{
return new JsonResult (new { data = await _context.Category.ToListAsync() });
}
// GET: api/Categories/5
[HttpGet("{id}")]
public async Task<ActionResult<Category>> GetCategory(int id)
{
var category = await _context.Category.FindAsync(id);
if (category == null)
{
return NotFound();
}
return category;
}
但是,它永远不会到达控制器。我在控制器中设置了几个断点,但它没有到达那里。我怀疑问题出在我为 Ajax 调用指定的 URL 中,但我尝试了一大堆变体,但似乎没有一个可以让调用访问控制器。
文件结构如下。
特别令人恼火的是,我知道这种技术是有效的,因为我在别人的项目中有一个几乎相同的例子,效果很好。
我们将非常感激任何帮助。谢谢!
【问题讨论】:
标签: javascript c# ajax visual-studio asp.net-core-3.1