#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.Контроллеры.CustomerController.GetCustomer (SampleCusAppAPI)’ не имеет атрибута route . Методы действий на контроллерах, аннотированных ApiControllerAttribute, должны быть перенаправлены по атрибутам.
Код: StartUp.cs
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.
});
}
Код веб-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);
}
}
}
Комментарии:
1. в ошибке четко указано
GetCustomer(SampleCusAppAPI)
, где этот метод? оно должно быть украшено атрибутом маршрута2. @king король, можешь прислать пример / ссылку?
3. пример лежит прямо в том, что вы опубликовали, но код предназначен для
GetCustomer()
, а не дляGetCustomer(SampleCusAppAPI)
, поэтому я спросил, где этот метод.4. @king king, у меня есть только один метод в моем контроллере api GetCustomer(). Но произошла ошибка, подобная этой (GetCustomer(SampleCusAppAPI)). Эта ошибка произошла в приложении. Конечные точки использования.
5. @king king Пожалуйста, пришлите мне любую ссылку с примером маршрутизации веб-api. Я новичок в core.
Ответ №1:
Это пример 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));
}