Asp.net核心web api应用程序,startup.cs文件中出现错误
错误消息: 操作“SampleCusAppAPI.Controllers.CustomerController.GetCustomer(SampleCusAppAPI)”没有属性路由。使用ApiControllerAttribute注释的控制器上的操作方法必须为属性路由 代码:StartUp.csAsp.net核心web api应用程序,startup.cs文件中出现错误,asp.net,entity-framework,asp.net-core,asp.net-web-api,asp.net-core-webapi,Asp.net,Entity Framework,Asp.net Core,Asp.net Web Api,Asp.net Core Webapi,错误消息: 操作“SampleCusAppAPI.Controllers.CustomerController.GetCustomer(SampleCusAppAPI)”没有属性路由。使用ApiControllerAttribute注释的控制器上的操作方法必须为属性路由 代码:StartUp.cs public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (e
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers(); // Error Occured in this line.
});
}
Web Api代码:CustomerController
namespace SampleCusAppAPI.Controllers
{
[ApiController]
//[System.Web.Http.Route("api/[controller]")]
public class CustomerController : ControllerBase
{
SampleTestingDBContext objSampleTestingDBContext = new SampleTestingDBContext();
[System.Web.Http.Route("api/Customer/GetCustomer")]
[System.Web.Http.HttpGet]
public IQueryable<Customer> GetCustomer()
{
return objSampleTestingDBContext.Customers.OrderByDescending(x => x.CustomerId);
}
}
}
namespace SampleCusAppAPI.Controllers
{
[ApiController]
//[System.Web.Http.Route(“api/[controller]”)
公共类CustomerController:ControllerBase
{
SampleTestingDBContext objSampleTestingDBContext=新SampleTestingDBContext();
[System.Web.Http.Route(“api/Customer/GetCustomer”)]
[System.Web.Http.HttpGet]
公共IQueryable GetCustomer()
{
返回objSampleTestingDBContext.Customers.OrderByDescending(x=>x.CustomerId);
}
}
}
这是您想要的GET api示例。它可能会帮助您解决问题
/// <summary>
/// Get task by id
/// GET : api/tasks/{id}
/// </summary>
/// <param name="task_id"></param>
/// <returns></returns>
[HttpGet("{task_id:long}")]
public async Task<IActionResult> Get(long task_id)
{
var task = await _taskService.GetTaskByIdAsync(task_id, _user.org_id);
if (task != null)
{
var assignee = await _taskService.GetTaskAssigneeAsync(new long[] { task_id });
task.assignee = assignee;
return Ok(task);
}
return NotFound(Logger.Error($"No task found with id {task_id}", HttpStatusCode.NotFound));
}
//
///按id获取任务
///GET:api/tasks/{id}
///
///
///
[HttpGet(“{task_id:long}”)]
公共异步任务Get(长任务\u id)
{
var task=await\u taskService.GetTaskByIdAsync(task\u id,\u user.org\u id);
如果(任务!=null)
{
var assignee=await_taskService.GetTaskAssigneeAsync(新的long[]{task_id});
task.assignee=受让人;
返回Ok(任务);
}
返回NotFound(Logger.Error($“找不到id为{task_id}的任务”,HttpStatusCode.NotFound));
}
错误清楚地说明了这个GetCustomer(SampleCusAppAPI)
,这个方法在哪里?它应该用路线来装饰attribute@kingking,你能发送示例/链接吗?示例就在你发布的内容中,但代码是针对GetCustomer()
,而不是针对GetCustomer(SampleCusappi)
,所以我问这个方法在哪里。@king,我的api控制器GetCustomer()中只有一个方法。但出现了如下错误(GetCustomer(SampleCusAppAPI))。此错误发生在app.UseEndpoints中。@king king请向我发送任何web api路由示例链接。我对core是新手。