web api找不到Get方法- 500错误

本文关键字:错误 方法 Get api 找不到 web | 更新日期: 2023-09-27 18:18:23

当我尝试调用web api以获得单个供应商时。它返回一个500的错误。

我尝试打破内部Get(Guid id),但它从来没有进入它。

我知道它正在到达控制器,但看起来它找不到Get(Guid id)函数。

知道为什么吗?我错过什么了吗?

web API路由
config.Routes.MapHttpRoute(
                name: "Module",
                routeTemplate: "api/module/{controller}/{id}/{action}",
                defaults: new {  id = RouteParameter.Optional, action = RouteParameter.Optional }
            );
api控制器

namespace App.WebUI.Controllers.api.Module
{
    public class VendorsController : ApiController
    {
        private readonly UnitOfWork _repository = new UnitOfWork();

        // GET api/Module/vendors
        [HttpGet]
        public HttpResponseMessage Get()
        {
           return all; 
        }
        // GET api/Module/vendors/5
        [HttpGet]
        public HttpResponseMessage Get(Guid id)
        {
           return single
        }
        // POST api/Module/vendors
        [HttpPost]
        public HttpResponseMessage Post(Vendor vendor)
        {
           insert single
        }
        [HttpPut]
        //PUT api/Module/Vendors
        public HttpResponseMessage Put(Vendor vendor)
        {
            update single
        }
    }
}

web api找不到Get方法- 500错误

这是我必须做的工作。

config.Routes.MapHttpRoute(
                name: "Module",
                routeTemplate: "api/module/{controller}/{id}/{action}",
                defaults: new {  id = RouteParameter.Optional, action = "DefaultAction" }
            );

然后在默认的Action(GET(), GET(id), POST(), PUT(), DELETE())中添加数据注释:[ActionName("DefaultAction")]