首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何创建ASP.NET Web API Url?

如何创建ASP.NET Web API Url?
EN

Stack Overflow用户
提问于 2012-02-29 23:53:51
回答 3查看 90.6K关注 0票数 122

在ASP.NET MVC中,我们有用于操作的@Url.Action。是否有类似于@Url.Api的路由到/api/控制器的内容?

EN

回答 3

Stack Overflow用户

发布于 2013-07-25 22:41:08

它适用于更简单的Url.Action形式,因此您不必引用任何路由名称:

代码语言:javascript
复制
Url.Action("ActionName", "ControllerName", new { httproute = "DefaultApi" })

如果某个区域内需要area = "",则可能需要添加该URL。(默认情况下,Api控制器位于区域之外。)我使用的是MVC4。

票数 45
EN

Stack Overflow用户

发布于 2015-11-16 22:43:37

希望能够以类型安全的方式生成链接,而不需要硬编码的字符串(控制器名称)?

有一个nuget可以解决这个问题!(这是Mark Seeman写的)

https://github.com/ploeh/Hyprlinkr

其工作原理如下:

路由,像往常一样:

代码语言:javascript
复制
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }

获取URL:

代码语言:javascript
复制
var linker = new RouteLinker(request);
var uri = linker.GetUri<FooController>(r => r.GetById(1337));

结果:

代码语言:javascript
复制
http://localhost/api/foo/1337
票数 8
EN

Stack Overflow用户

发布于 2017-10-05 02:13:51

下面是回答这个问题的KISS方法:

如果这是用于创建MVC控制器URL的代码

代码语言:javascript
复制
@Url.Action("Edit", "MyController")

为了获得控制器的API版本的URL (假设您使用相同的控制器名称),您可以使用

代码语言:javascript
复制
@Url.Action("Edit", "api/MyController")

Url.Action方法所做的一切就是在应用程序的根路径上附加控制器名称,后跟操作名称(除非它是“索引”,在这种情况下不会附加它。如果路由值对象具有id属性,则还会将该值附加到URL。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9502306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档