什么是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

上一篇: What's the WebApi [FromUri] equivalent in ASP.NET MVC?

下一篇: Model Binding and Validation Errors