什么是ASP.NET MVC中的WebApi [FromUri]等价物?
在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在这个问题上甚至在谈论什么,如果他以错误的属性获得成功的话。
我想我希望得到明确的答案,而不是其他问题的泥土。
它会正常工作™:
[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映射到你的模型。
链接地址: http://www.djcxy.com/p/58303.html