Asp.net основное приложение веб-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.Контроллеры.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));
    }