2016-09-09 2 views
1

Ich habe einen Filter für Webapi Aktionsmethoden geschrieben.Wie erhält man den Gebietsnamen in WebApi?

Ich dachte, Bereich Name durch Schreiben einer netten Hilfsmethode abzurufen.

public static string GetAreaName(System.Web.Http.Controllers.HttpActionContext httpContext) 
{ 
    var areaName = string.Empty; 
    var routeData = httpContext.ControllerContext.RouteData; 
    if (routeData != null) 
    { 
     areaName = routeData.Route.DataTokens["area"] as string; 
    } 

    return areaName; 
} 

Aber areaName ist immer null oder leer.

Kann jemand irgendwelche Gedanken darüber ablegen?

Antwort

0

Sie möchten Values nicht DataTokens.

public static string GetAreaName(System.Web.Http.Controllers.HttpActionContext httpContext) 
{ 
    var areaName = string.Empty; 
    var routeData = httpContext.ControllerContext.RouteData; 
    if (routeData != null) 
    { 
     areaName = routeData.Route.Values["area"] as string; 
    } 
    return areaName; 
} 

Documentation - RouteData.Values

Ruft eine Auflistung von URL-Parameterwerte und Standardwerte für die Route.

+0

'Route' enthält keine Definition für' Values'. ** routeData.Route.Values ​​["Bereich"] ** löst einen Fehler aus. –

+0

Verwenden Sie 'using System.Web.Routing' hinzugefügt verwenden –

+0

Downvoted, dies funktioniert nicht für WebApi. – plmaheu

Verwandte Themen