Asp.net web api 如何在ASP.NET Web API中指定控制器的名称?

Asp.net web api 如何在ASP.NET Web API中指定控制器的名称?,asp.net-web-api,Asp.net Web Api,我有一个ApiController,非常简单,如下所示: 公共类资产控制器:ApiController { //为简洁起见,请删除 } 当我从一个视图插入到它的路由时,创建的url类似于: http://host/Asset 但我想自定义名称,使其成为: http://host/assets 如何为我的控制器指定自定义名称,而不必求助于完整的自定义路由表 当我从一个视图中插入到它的路由时,创建的url类似于:http://host/Asset 您还没有真正展示如何进行插入,但以下操作应该可

我有一个ApiController,非常简单,如下所示:

公共类资产控制器:ApiController
{
//为简洁起见,请删除
}
当我从一个视图插入到它的路由时,创建的url类似于:

http://host/Asset
但我想自定义名称,使其成为:

http://host/assets
如何为我的控制器指定自定义名称,而不必求助于完整的自定义路由表

当我从一个视图中插入到它的路由时,创建的url类似于:
http://host/Asset

您还没有真正展示如何进行插入,但以下操作应该可以正常工作:

@Url.RouteUrl("DefaultApi", new { httproute = "false", controller = "assets" })
如果需要绝对url,可以将协议方案指定为第三个参数:

@Url.RouteUrl("DefaultApi", new { httproute = "false", controller = "assets" }, "http")

为了遵守RESTFul约定,您应该将控制器重命名为
assetcontroller

我建议您查看该库。它通过在每个函数上放置一个属性并给它一个特定的路由(可以是任何路由)来很好地处理这方面的问题。

我必须解决这个问题,所以我选择调整路由表以反映我真正想要的API。

为了使它小写。。。你有没有检查过这个答案和答案?他们倾向于在这里指向CodePlex项目检查部分:(第4步。(如果使用ASP.NET Web API)-重新映射您的HTTP)谢谢,我一直在看,我一直在浏览源代码,但我找不到任何对我有帮助的东西。我认为今天唯一的出路是定制路线表。我已经更新了问题主体,使其更加清晰。有人帮忙,谢谢。它确实使我重命名控制器以影响名称。我试图得到一个复数名称的RESTFul约定,但我不认为这应该是控制器的关注点。这是控制器在约定方面的关注点。这就是ASP.NET MVC路由的工作原理。所以遵循这些惯例。