asp.net-web-api - ASP.Net Web API 模型绑定(bind)不像在 MVC 3 中那样工作

标签 asp.net-web-api model-binding custom-model-binder jquery-datatables-editor

我的印象是,ASP.Net Web API 中的模型绑定(bind)应该支持与 MVC 支持的最低功能级别的绑定(bind)。

采取以下 Controller :

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 中那样绑定(bind)。为什么这不像我期望的那样具有约束力?我的应用程序中将有很多不同的模型类型。如果绑定(bind)能正常工作就好了,就像在 MVC 中一样。

最佳答案

看看这个:How WebAPI does Parameter Binding

您需要像这样装饰您的复杂参数:

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

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

关于asp.net-web-api - ASP.Net Web API 模型绑定(bind)不像在 MVC 3 中那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10863499/

相关文章:

c# - 使用强类型 HTML 助手的 POST 上的 ASP MVC2 模型绑定(bind)问题

asp.net - currentUser 作为模型绑定(bind)参数

c# - 从 Web API 方法获取原始 POST 数据

asp.net-web-api - Azure Service Fabric SDK 2.6.210 在 Visual Studio 2017 上缺少无状态 Web API 模板?

.net - 动态表行未通过 jquery ajax 调用更新

c# - 为什么我不能在我的 global.asax 文件夹中添加我的自定义模型联编程序?

c# - ASP.NET Core 2.0 - 动态定义文档模型

asp.net - 使用 ASP.NET Web API 访问 session

asp.net-mvc - 自定义模型绑定(bind)器不验证模型