我正在尝试在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 = ....
有可能吗?
答案 0 :(得分:2)
无论如何我找到了答案,
在ControllerContext的RouteData中,我们可以检索指定的值。
actionContext.ControllerContext.RouteData.Values["udid"]
答案 1 :(得分: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;}
}