【发布时间】:2022-11-24 03:47:14
【问题描述】:
对于大多数默认的 .NET 6 网站(使用 Angular),我试图添加一些控制器,但我添加的任何控制器似乎都不起作用,它们都返回 404(加上一些 HTML)。
然而,即使将内容更改为与新控制器相同,默认控制器“WeatherForecastController”仍然有效。
除了名称之外,我的 2 个控制器完全相同:
using Microsoft.AspNetCore.Mvc;
namespace TestWebsite.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
[HttpGet]
public string Get()
{
return "OK";
}
}
}
using Microsoft.AspNetCore.Mvc;
namespace TestWebsite.Controllers
{
[ApiController]
[Route("[controller]")]
public class OtherController : ControllerBase
{
[HttpGet]
public string Get()
{
return "OK";
}
}
}
“WeatherForecastController”的作品:
Program.cs(字面上未经编辑):
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddControllersWithViews();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
// 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.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}"
);
app.MapFallbackToFile("index.html");
app.Run();
}
}
真的在这里不知所措,这完全没有意义。
编辑:我刚刚发现当我通过 http 和 http 端口调用时,两个控制器都按预期工作,为什么 https 有这个问题?
【问题讨论】:
-
设置你的
app.MapControllerRoute()后可能会丢失app.MapControllers(); -
@EricRobinson 没什么区别,只是发现它在 http 下正常工作,但是由于某种原因它只是 https 有这个问题
标签: c# angular api controller .net-6.0