$.ajax({ url: '/api/search', type: 'POST', contentType: 'application/x-www-form-urlenpred; charset=utf-8', data: '=' + enpreURIComponent(request.term), success: function (data) { response(data.d); }, error: function (result) { alert('Error'); }});基本上,您只能有一个标量类型的参数,该参数用
[FromBody]属性装饰,并且您的请求需要使用
application/x-www-form-urlenpred,并且POST有效负载应如下所示:
=somevalue
请注意,与标准协议相反,缺少参数名称。您仅发送值。
您可以在中阅读有关Web Api中的模型绑定如何工作的更多信息
this article。
但是,当然,这种黑客入侵是一件病态的事情。您应该使用视图模型:
public class MyViewModel{ public string Value { get; set; }}然后摆脱
[FromBody]属性:
public IEnumerable<string> Post(MyViewModel model){ return new string[] { "value1", "value2", model.Value };}然后使用JSON请求:
$.ajax({ url: '/api/search', type: 'POST', contentType: 'application/json; charset=utf-8', data: JSON.stringify({ value: request.term }), success: function (data) { response(data.d); }, error: function (result) { alert('Error'); }});


