javascript - 剃须刀页面中的路由问题
问题描述
这个已经让我发疯了几个星期了,所以如果有人能指出我正确的方向,我将非常感激。
我正在使用.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 中,但我尝试了一大堆变体,但似乎没有一个可以让调用访问控制器。
文件结构如下。
特别令人恼火的是,我知道这种技术是有效的,因为我有一个来自其他人项目的几乎相同的例子,它运行良好。
任何帮助将不胜感激。谢谢!
解决方案
啊哈哈!我发现了这个问题。为了在控制器中使用路由,我需要添加该行
endpoints.MapControllers();
进入我的 startup.cs 文件
推荐阅读
- python - 从子目录和子目录中导入时如何解决冲突的导入要求?
- azure-devops - 与本地机器相比,管道构建后packages文件夹的内容不同
- dom-manipulation - 谁能告诉我为什么错误在我的代码中显示它是基本的 addeventlistener 格式
- amazon-web-services - 如何在 AWS::ElasticBeanstalk::Environment 中设置环境变量?
- swift - UIViewRepresentable 视图如何获取在父级设置的环境属性
- sql - 根据用户条件执行部分 SQL 查询
- android - 如何使用 docusign mobile-android-sdk 以编程方式将只读字段添加到 Android 上的模板?
- c++ - 没有按预期工作的简单特征(MSVC 与 gcc 和 clang)以及如何修复它
- slack - 是否可以使用新传入的 webhook 设置 icon_emoji ?
- android - “adb shell dumpsys alarm”的结果中的“tag”是什么?