1

我正在尝试获取 ActionFilterAttribute 上特定属性路由 URL 的参数。例如,我有如下操作:

[Route("/v1/test/{userId}/{udid}")]
public object GetNewObject(int userId, string udid) 

在动作过滤器属性中,绝对网址类似于“ http://test.example.com/v1/test/1/123-asda-231-asd ”。但是我想在集合中将这些参数解析为 userId=1 和 udid=... 。

可能吗?

4

2 回答 2

2

无论如何,我找到了答案,

在 ControllerContext 的 RouteData 中,我们可以检索指定的值。

actionContext.ControllerContext.RouteData.Values["udid"]
于 2013-10-22T21:30:18.480 回答
1

[Route("...")] 只有在 MVC 5 中才有可能。我想你想做这样的事情

[RoutePrefix("api/users")]
public class UsersController : ApiController
{
    // GET api/users
    [Route("")]
    public IEnumerable<User> Get() { ... }

    // GET api/user/5
    [Route("{id:int}")]
    public Book Get(int id) { ... }

    // POST api/users
    [Route("")]
    public HttpResponseMessage Post(User book) { ... }
}

每个用户都包含您的属性

public class User
{
     int UserId{get;set;}
     string Udid{get; set;} 
}
于 2013-10-22T21:36:54.443 回答