2013-11-27 12 views
30

Webapi 2'yi kullanırken http yanıtım için Konum üstbilgisi eklemek istiyorum. Aşağıdaki yöntem, bunun nasıl adlandırılmış bir yol kullanılarak yapıldığını gösterir. Webapi 2'nin bir parçası olarak yayınlanan Yönlendirme Yönlendirme özelliğini kullanarak Url.Link'i oluşturabileceğinizi bilen var mı? peşinWebapi 2'de Yönlendirme Yönlendirmesi ile Url.Link'i Kullanma

cevap

48

nitelik yönlendirme kullanırken Ur.Link ile RouteName kullanabilirsiniz içinde

string uri = Url.Link("DefaultApi", new { id = reponse.Id }); 
httpResponse.Headers.Location = new Uri(uri); 

teşekkürler.

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