什么是ASP.NET MVC中的WebApi 等价物?

在WebApi中,我可以使用[FromUri]在控制器动作上装饰一个参数,以便将URI的组件’反序列化’(如果愿意的话)放入POCO模型中; 又称模型绑定。

尽管从2.0开始使用MVC,我从未将它用于网站(不知道为什么)。 ASP.NET MVC 5中它的等价物是什么?

除非我需要引用库,否则IDE中似乎无法识别该属性。

我想~/thing/2014/9绑定到下面的模型:

 public class WhateverModel { public int Year { get; set; } public int Month { get; set; } } 

谢谢

更新

在另一个问题(上面的链接)中,OP说:

但是,将其切换为普通MVC而不是WebApi,并且默认模型绑定器会崩溃,并且无法绑定嵌套数组中对象的属性

这意味着他正在使用WebApi中的属性。 我猜。 我没有那些引用,因为我在MVC中,所以(ab)使用WebApi的版本是否可以在MVC中执行此操作?

更新2

在这个问题的答案是:

您需要构建关于MVC模型绑定器命名约定的查询字符串。

此外,示例操作中的[FromUri]属性被完全忽略,因为MVC DefaultModelBinder不知道它

因此,如果他在错误的属性上取得了一些成功,那么我仍然不知道OP在该问题上甚至在谈论什么做什么或地球上有什么。

我想我希望得到一个明确的答案,而不是其他问题的泥泞。

它只是Just Work™:

 [HttpGet] public ActionResult Thing(WhateverModel model) { // use model return View(); } 

至少,当使用URL /thing?Year=2014&Month=9

问题是你的路由。 URL /thing/2014/9不会使用MVC的默认路由进行映射,因为它是/{controller}/{action}/{id} ,其中{id}是可选的int

最简单的方法是使用属性路由:

 [HttpGet] [Route("/thing/{Year}/{Month}"] public ActionResult Thing(WhateverModel model) { // use model return View(); } 

这会将URL映射到您的模型。