Конструктор контроллера API никогда не вызывается в моем проекте Blazor - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в Blazor и создал API-контроллер для обработки моих процедур CRUD. У него есть конструктор, поэтому я могу сохранить соединение с базой данных для частного члена. Однако, когда мое приложение запускается, конструктор никогда не вызывается. Я также попытался отправить POST-сообщение на контроллер, я получил неверный запрос, поэтому я предполагаю, что он все еще не настроен правильно. Спасибо за вашу помощь!

StartUp.cs

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
      if (env.IsDevelopment())
      {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
      }
      else
      {
        app.UseExceptionHandler("/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios,
        // see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
      }

      app.UseHttpsRedirection();
      app.UseStaticFiles();

      app.UseRouting();

      app.UseAuthentication();
      app.UseAuthorization();

      app.UseEndpoints(endpoints =>
      {
        endpoints.MapControllers();
        endpoints.MapBlazorHub();
        endpoints.MapFallbackToPage("/_Host");
      });

    }

PTSEventController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using ComEd.PTS.DataStore.Models;
using Microsoft.AspNetCore.Mvc;

namespace ComEd.PTS.Event.UI.Controllers
{
  [Route("api/[controller]")]
  public class PTSEventController : ControllerBase
  {
    private readonly PeakTimeSavingsDBContext _dbContext;

    public PTSEventController(PeakTimeSavingsDBContext dbContext)
    {
      _dbContext = dbContext; //<<<< The constructor never gets called >>>>
    }

    // GET: api/<controller>
    [HttpGet]
    public IEnumerable<string> Get()
    {
      return new string[] { "value1", "value2" };
    }

    // GET api/<controller>/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
      return "value";
    }

    // POST api/<controller>
    [HttpPost]
    public void Post([FromBody]string value)
    {
      int x = 0;
      x++;
    }

    // PUT api/<controller>/5
    [HttpPut("{id}")]
    public void Put(int id, [FromBody]string value)
    {
      int x = 0;
      x++;

    }

    // DELETE api/<controller>/5
    [HttpDelete("{id}")]
    public void Delete(int id)
    {
      int x = 0;
      x++;
    }
  }
}

1 Ответ

0 голосов
/ 02 марта 2020

Добавить свой класс в качестве службы?

в ConfigureServices () в startup.cs:

services.AddSingleton<PTSEventController>();
...