首页 > 解决方案 > asp.net core 3 路由

问题描述

在我的 Asp.net core 3 项目中,我使用一些控制器从 js 代码访问以做一些事情,同时还使用 Razor 页面。

在配置服务部分:

    services.AddControllersWithViews();
    services.AddRazorPages();

我添加了带有视图的 RazorPages 和 MVC 控制器。

然后在配置部分

        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {              
            endpoints.MapRazorPages();
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");

        });

添加了上面的代码。当我尝试访问控制器时,我得到 404。我还尝试添加services.AddControllers();

需要帮助。

编辑:控制器代码

public class DashboardsController : BaseController, IDashboardsController
{
    [HttpGet]
     public async Task<JsonResult> GetAssetCategorySummaryAsync(){
        -------
    }
}

标签: asp.net-coreasp.net-core-3.0

解决方案


你的网址应该是localhost:9011/Dashboards/GetAssetCategorySummary.

您可以像下面这样修改 Startup.cs 以允许使用整个操作名称:

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc(options =>
        {
            options.SuppressAsyncSuffixInActionNames = false;
        });
        services.AddControllersWithViews();
        services.AddRazorPages();
    }

这是github上的一个已知问题,你可以参考这里


推荐阅读