asp.net-web-api – 在Webapi中使用Url.Link与属性路由2

前端之家收集整理的这篇文章主要介绍了asp.net-web-api – 在Webapi中使用Url.Link与属性路由2前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在使用webapi 2时向我的http响应添加一个Location头。下面的方法显示了如何使用一个命名的路由。有谁知道你是否可以使用作为webapi 2的一部分发布的属性路由功能创建Url.Link?
string uri = Url.Link("DefaultApi",new { id = reponse.Id });
httpResponse.Headers.Location = new Uri(uri);

提前致谢

解决方法

当使用属性路由时,您可以使用RouteName与Ur.Link。
public class BooksController : ApiController
{
    [Route("api/books/{id}",Name="GetBookById")]
    public BookDto GetBook(int id) 
    {
        // Implementation not shown...
    }

    [Route("api/books")]
    public HttpResponseMessage Post(Book book)
    {
        // Validate and add book to database (not shown)

        var response = Request.CreateResponse(HttpStatusCode.Created);

        // Generate a link to the new book and set the Location header in the response.
        string uri = Url.Link("GetBookById",new { id = book.BookId });
        response.Headers.Location = new Uri(uri);
        return response;
    }
}

http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#route-names

猜你在找的asp.Net相关文章