Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core ASP.NET核心WebAPI默认路由不工作_Asp.net Core_Asp.net Core Webapi - Fatal编程技术网

Asp.net core ASP.NET核心WebAPI默认路由不工作

Asp.net core ASP.NET核心WebAPI默认路由不工作,asp.net-core,asp.net-core-webapi,Asp.net Core,Asp.net Core Webapi,我遵循了几个示例,建议在ASP.NET核心WebAPI项目中设置默认路由,需要替换 app.UseMvc(); 与 但当我运行时,它默认为localhost:54321/api/values,并且应该默认为localhost:54321/Traders 怎么了?正如@tmg提到的,请执行以下操作: 右键单击web项目->选择属性->选择左侧的调试选项卡->然后编辑“启动Url”字段以设置您自己的默认启动Url 您可以通过修改LaunchSettings.json文件来更改默认路由,如图所示 按

我遵循了几个示例,建议在ASP.NET核心WebAPI项目中设置默认路由,需要替换

app.UseMvc();

但当我运行时,它默认为
localhost:54321/api/values
,并且应该默认为
localhost:54321/Traders


怎么了?

正如@tmg提到的,请执行以下操作:

右键单击web项目->选择属性->选择左侧的调试选项卡->然后编辑“启动Url”字段以设置您自己的默认启动Url


您可以通过修改LaunchSettings.json文件来更改默认路由,如图所示


按照以下步骤操作

为扩展dotnet core基本控制器的API创建基本控制器:

using Microsoft.AspNetCore.Mvc;

namespace WebApi.Controllers
{
    [Route("api/[controller]")]
    public abstract class ControllerApiBase : Controller
    {

    }
}
并继承API控制器中的基类:

using Microsoft.AspNetCore.Mvc;
using WebApi.Dtos;

namespace WebApi.Controllers
{
    public class PingController : ControllerApiBase
    {
        public PingDto Get()
        {
            return new PingDto
            {
                Version = "0.0.0"
            };
        }
    }
}

检查是否有属性routing@Alex是的,但是我删除了
valuescoontroller
,并且没有显示
api/values
的属性,您混淆了两个不同的东西。当您运行project时,它将从“launchUrl”开始。在项目模板中,“launchUrl”设置为“api/values”。与您选择的MVC路线无关changed@tmg你能详细说明一下吗?我在任何地方都找不到“launchUrl”。请检查项目属性。调试选项卡。我用aaagges找到了这个SO条目-就像很多人一样,我一直在摆弄默认路由模板,而不是启动URL!我不明白为什么这个模板不起作用:“api/{controller}/{action}”,你能把它作为文本发布吗?
using Microsoft.AspNetCore.Mvc;
using WebApi.Dtos;

namespace WebApi.Controllers
{
    public class PingController : ControllerApiBase
    {
        public PingDto Get()
        {
            return new PingDto
            {
                Version = "0.0.0"
            };
        }
    }
}