asp.net-mvc – ASP.NET MVC中的WebApi [FromUri]是什么?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC中的WebApi [FromUri]是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在WebApi中,我可以使用[FromUri]在控制器操作上装饰一个参数,使URI成为“反序列化”的组件,如果您将进入POCO模型;又称模型绑定.

尽管从2.0开始就使用MVC,但我从来没有使用过这个网站(dunno为什么).在ASP.NET MVC 5中相当于什么?

属性似乎在IDE中似乎不被识别,除非我需要引用一个库.

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

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

谢谢

更新

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

However,switch this to plain MVC not WebApi and the default model binder breaks down and cannot bind the properties on objects in the nested array

这意味着他正在使用WebApi的属性.我猜.我没有这些引用,因为我在MVC中,(ab)使用WebApi的版本是MVC中接受的方法吗?

更新2

在这个问题的答案是:

You need to construct your query string respecting MVC model binder naming conventions.

Additionally [FromUri] attribute in your example action is completely ignored,since it’s not known to MVC DefaultModelBinder

所以我仍然不知道OP在这个问题上甚么谈论该做什么,甚至在地球上,如果他在错误属性上取得了一些成功.

我想我希望有一个明确的答案,而不是另一个问题的泥土.

解决方法

它会工作?
[HttpGet]
public ActionResult Thing(WhateverModel model)
{
    // use model
    return View();
}

至少在使用URL /东西?年= 2014和月= 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映射到您的模型.

猜你在找的asp.Net相关文章