Я новичок в 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++;
}
}
}