【发布时间】:2014-08-31 03:33:09
【问题描述】:
我想知道是否有可能以某种方式在控制器之外获取路由值?
这是我尝试过的。我也尝试过.Values["{projectId}"];,但我仍然得到null。
[RoutePrefix("projects")]
public class UsergroupController : ApiController
{
[Route("{projectId}/usergroups"), HttpGet]
public IHttpActionResult Get()
{
// Url: /projects/123/usergroups
// Response: null
var projectId = HttpContext.Current.Request.RequestContext.RouteData.Values["projectId"];
return Ok(projectId);
}
}
我发现它的位置,但是在一个很奇怪的地方。也许可能有某种 LINQ 查询来获取它?
RouteData-Values-Values-0-0-Values-0
【问题讨论】:
-
我认为 ASP.Net MVC 和 WebAPI 不共享所有路由信息...通过在调试器中检查
RouteData.Values应该相对容易看到问题。 -
@AlexeiLevenkov 好点,我发现它实际上位于某个地方,但问题是 - 我如何到达那里?
-
根据图片,您需要检查外部
Keys的值是多少(对我来说也很惊讶......而且我更惊讶的是你能够看到值 - 我预计WebAPI 有单独的路由)
标签: c# asp.net asp.net-mvc asp.net-mvc-routing