【发布时间】:2019-10-21 08:39:17
【问题描述】:
无论我在运行我的 api 后尝试加载哪个页面,我都会收到“找不到此本地主机页面”404 错误,即使我尝试运行仅返回“Ok”的方法也是如此。 我认为问题可能在于我配置应用程序的方式。那,或者我在路由时犯了一些错误。
我尝试过修改应用配置,查看示例,但其中大多数都安装了额外的 NuGet 包。我尝试在ConfigureServices 方法中使用.AddControllers() 方法,导致语法错误,我尝试在Configure 函数中使用.UseRouting(),但又遇到语法错误。
启动类:
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<IRepositoryWrapper, RepositoryWrapper>();
services.AddDbContext<ArtGalleriesContext>(
options=>options.UseSqlServer(
Configuration.GetConnectionString("Database")));
//services.AddScoped<IArtItemRepository1, ArtItemRepository1>();
services.AddMvc();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// 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.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
节目类:
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
我正在尝试调用这个函数
[Route("api/[controller]")]
[ApiController]
public class AdminController : ControllerBase
[HttpGet("/user/add/{num1}/")]
public IActionResult SumActionResult(int num1)
{
return Ok(num1 );
}
像这样:api/admin/users/add/1 并让它在我的网页中显示 1 以确认功能。 我收到的是“找不到此本地主机页面”错误。
【问题讨论】:
-
创建 HomeController 或更改 MapRoute
-
将
controller=Home更改为controller=Admin并没有成功。 localhost/api/admin/user/add/1 仍然返回 404。 -
尝试 /user/add/1 而不是 api/admin/users/add/1,还要注意你在路由中有用户而不是用户
-
是的,这条路线确实有效。我认为写在控制器类声明上方的 [Route("string/[controller]")] 将与所有其他路由声明连接。有什么办法获得吗?