所以我正在.net core 2.1中处理我的Web应用程序。我已经使用了Api模板,并且试图使控制器执行HttpGet,我想在其中列出数据库中的所有项目。
在这种情况下,我的DbProvider是服务类。
[Route("api/[controller]")]
[ApiController]
public class ValueController : ControllerBase
{
DbProvider _dbProvider;
public ValueController(DbProvider dbProvider)
{
_dbProvider = dbProvider;
}
[HttpGet]
public async Task<IEnumerable<Dto>> ListAllItemsAsync()
{
return await _dbProvider.ListAllValuesAsync();
}
}
public class DbProvider
{
DbRepository _repository;
public DbProvider(DbRepository repository)
{
_repository = repository;
}
public async Task<IEnumerable<Dto>> ListItemsAsync()
{
return await _repository.ListAsync();
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_2);
var connString = "database-connectionsting-hardcoded-for-now";
services.AddDbContext<DbContext>(options => options.UseSqlServer(connString));
services.AddMvc();
services.AddTransient<DbProvider>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else app.UseHsts();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseHttpsRedirection();
app.UseMvc();
}
我收到错误代码404,在邮递员中我无法获得任何结果。
我希望从数据库中获取一些json值,因此我可以看到一切运行顺利。
我想念什么? 我可以执行常规的HttGet方法,并且可以正常工作。像这样:
[HttpGet]
public ActionResult Index() //This works
{
return Content("Sucsess! ");
}
答案 0 :(得分:1)
我要结束这个问题,因为我的问题与依赖注入和分层体系结构有关。我在不同的博客中阅读后发现了这一点。 无论如何,谢谢大家的帮助!
答案 1 :(得分:0)
您必须使用以下网址:
localhost:44339/api/value/ListAllItemsAsync