【问题标题】:debugging the asp.net core web API调试 asp.net 核心 web API
【发布时间】:2020-01-24 00:16:03
【问题描述】:

我在 .net 中编写了这个 API。我正在尝试通过 Fiddler 调用此方法并收到以下错误消息:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /api/allItProjectsLists/Index</pre>
</body>
</html>

不知道我做错了什么。有什么办法,我可以在方法 Index 中放置一个断点并找出问题所在。以下是我的 API 代码:

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 ProjectDetails.Models;
using ProjectDetails.Data;
using ProjectDetails.Interfaces;
namespace ProjectDetails.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class AllItProjectsListsController : ControllerBase
    {
        private readonly KPIContext _context;
        private readonly IProject objProject;

        public AllItProjectsListsController(IProject _objProject)
        {
            objProject = _objProject;

        }


        [HttpGet("/Index")]
        public IEnumerable<AllItProjectsList> Index()
        {
            return objProject.GetAllProjectDetails();
        }

        [HttpPost]
        [Route("api/AllItProjectsLists/Create")]
        public int Create([FromBody] AllItProjectsList project)
        {
            return objProject.AddProject(project);
        }

        [HttpGet]
        [Route("api/AllItProjectsLists/Details/{id}")]
        public AllItProjectsList Details(int id)
        {
            return objProject.GetProjectData(id);
        }

        [HttpPut]
        [Route("api/AllItProjectsLists/Edit")]
        public int Edit([FromBody]AllItProjectsList project)
        {
            return objProject.UpdateProject(project);
        }

        [HttpDelete]
        [Route("api/AllItProjectsLists/Delete/{id}")]
        public int Delete(int id)
        {
            return objProject.DeleteProject(id);
        }

        [HttpGet]
        [Route("api/AllItProjectsLists/GetAppDevList")]
         public IEnumerable<AppDev> GetAppDev()
         {
                  return objProject.GetAppDevs();
         }

对于上述调试的任何帮助将不胜感激。在 Fiddler 中,我输入了以下 URL:

https://localhost:44313/api/AllItProjectsLists/Index

下面是 Fiddler 的图片:

【问题讨论】:

    标签: asp.net-core-webapi


    【解决方案1】:

    您需要将属性路由的操作上的[HttpGet("/Index")] 更改为[HttpGet("Index")]

    [HttpGet("/Index")] 将对 URL 执行为https://localhost:44313/Index

    [HttpGet("Index")] 将对 URL 执行为https://localhost:44313/api/AllItProjectsLists/Index

    参考attribute routing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 2023-01-22
      • 2020-07-07
      • 1970-01-01
      • 2017-08-25
      相关资源
      最近更新 更多