首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在使用属性路由时替换Url.Link

在使用属性路由时替换Url.Link
EN

Stack Overflow用户
提问于 2013-11-20 16:04:06
回答 1查看 6K关注 0票数 17

我已经将我的项目从webapi升级到webapi2,现在正在使用属性路由。我有一个方法,我使用url helper来获取Url。这是替换Url帮助器的最佳方式(因为这不适用于属性)。

我的旧用法示例代码:

代码语言:javascript
复制
protected Uri GetLocationUri(object route, string routeName = WebApiConfig.RouteDefaultApi)
{
    string uri = Url.Link(routeName, route);
    return new Uri(uri);
}

路由配置:

代码语言:javascript
复制
public static void Register(HttpConfiguration config)
{
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: RouteDefaultApi,
        routeTemplate: "{controller}/{id}/{action}",
        defaults: new { id = RouteParameter.Optional, action = "Default" }
    );           
}

用法:

代码语言:javascript
复制
Uri myUrl = GetLocationUri(route: new { action = "images", id = eventId });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-20 22:52:53

当您想要生成指向控制器/操作的属性路由的链接时,为什么要尝试使用传统的路由RouteDefaultApi

以下是如何将Url.Link与属性路由配合使用的示例用法:

代码语言:javascript
复制
[Route("api/values/{id}", Name = "GetValueById")]
public string GetSingle(int id)

Url.Link("GetValueById", new { id = 10 } );
票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20090428

复制
相关文章

相似问题

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