首页 > 解决方案 > ASP.net Core:浏览器找不到控制器的动作

问题描述

我新建了一个简单的控制器 但是当我在浏览器中输入以下地址时,找不到它!
http://localhost:5000/Test/Index

Test.cs:

using Microsoft.AspNetCore.Mvc;

namespace Test.Controllers
{
    [Route("[controller]/[action]")]
    public class TestController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
            return Content("Welcome");
        }
    }
}

启动.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;

namespace Test
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddRazorPages().AddRazorRuntimeCompilation();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseStaticFiles();

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapRazorPages();
            });
        }
    }
}

我在哪里做错了?

标签: c#asp.net-core

解决方案


首先编辑你的控制器属性:

[Route("[controller]/[action]")]

[Route("[controller]")]

尝试这个

app.UseEndpoints(endPoints =>
            {
               endPoints.MapControllerRoute(
                  "default",
                  "{controller}/{action}/{id?}");
            });

还要确保您使用正确的端口 5000 或 5001 是默认值


推荐阅读