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核心中url的一部分_Asp.net Core_.net Core_Asp.net Core Webapi_Kestrel - Fatal编程技术网

Asp.net core 将“更改为”/空气污染指数;ASP.Net核心中url的一部分

Asp.net core 将“更改为”/空气污染指数;ASP.Net核心中url的一部分,asp.net-core,.net-core,asp.net-core-webapi,kestrel,Asp.net Core,.net Core,Asp.net Core Webapi,Kestrel,当我运行.NET Core Web API项目时,我会得到一个如下所示的URL:http://localhost:5000/api/... 如何将URL的/api/部分更改为其他内容?i、 e.-http://localhost:5000/myservice/... 我正在使用Kestrel作为我的web主机。这取决于项目设置的方式。默认情况下,我相信它使用属性路由。在您的控制器中,您应该看到如下内容 [Route("api/[controller]")] public class Values

当我运行.NET Core Web API项目时,我会得到一个如下所示的URL:http://localhost:5000/api/...

如何将URL的/api/部分更改为其他内容?i、 e.-http://localhost:5000/myservice/...


我正在使用Kestrel作为我的web主机。

这取决于项目设置的方式。默认情况下,我相信它使用属性路由。在您的控制器中,您应该看到如下内容

[Route("api/[controller]")]
public class ValuesController : Controller
{
其中,[Route(“api/[controller]”)只需更改为[Route(“myservice/[controller]”)

如果你想在全球范围内做,你可以这样做

app.UseMvc(routes =>
{
   routes.MapRoute("default",  "myservice/{controller=values}/{action=get}/{id?}");
});
虽然我自己不使用这个,而且它也不是微软推荐的Web Api。你可以读更多

混合路由 MVC应用程序可以混合使用传统路由和属性路由。对于为浏览器提供HTML页面的控制器,通常使用常规路由;对于为RESTAPI提供服务的控制器,通常使用属性路由


您只需安装
microsoft.aspnetcore.http.abstractions
nuget软件包,并在
IApplicationBuilder
上使用
extension方法即可。请按如下方式配置
方法:

app.UsePathBase("/api/v1");

这应该是Startup.cs中路由配置的一个非常简单的更改。啊,谢谢!我将把这作为答案。另一方面,有没有一种方法可以在全局范围内而不是在每个控制器中实现这一点?是的,我自己喜欢属性路由,因为我可以控制url,但你可以做到。让我编辑答案,使代码更清晰。