asp.net web-api – ASP.Net Web API模型绑定不工作像在MVC 3

前端之家收集整理的这篇文章主要介绍了asp.net web-api – ASP.Net Web API模型绑定不工作像在MVC 3前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的印象是,ASP.Net Web API中的模型绑定应该支持与MVC支持的相同的最低级别的功能的绑定。

拿下面的控制器:

public class WordsController : ApiController
{
    private string[] _words = new [] { "apple","ball","cat","dog" };

    public IEnumerable<string> Get(SearchModel searchSearchModel)
    {
        return _words
            .Where(w => w.Contains(searchSearchModel.Search))
            .Take(searchSearchModel.Max);
    }
}

public class SearchModel
{
    public string Search { get; set; }
    public int Max { get; set; }
}

我要求:

http://localhost:62855/api/words?search=a&max=2

不幸的是,模型不像在MVC中那样绑定。为什么这不具有约束力,我会期望?我将在我的应用程序中有很多不同的模型类型。这将是很好,如果绑定只是工作,就像它在MVC。

解决方法

看看这个: How WebAPI does Parameter Binding

你需要装饰你的复杂参数,如:

public IEnumerable<string> Get([FromUri] SearchModel searchSearchModel)

要么

public IEnumerable<string> Get([ModelBinder] SearchModel searchSearchModel)

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