当我使用下面的ajax调用下面的Post方法时,为什么参数总是为null?
public IEnumerable<string> Post([FromBody]string value)
{
return new string[] { "value1", "value2", value };
}
这是通过ajax对Web API方法的调用:
function SearchText() {
$("#txtSearch").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "api/search/",
data: "test",
dataType: "text",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
}
});
}
$.ajax({
url: '/api/search',
type: 'POST',
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
data: '=' + encodeURIComponent(request.term),
success: function (data) {
response(data.d);
},
error: function (result) {
alert('Error');
}
});
基本上,您只能有一个标量类型的参数,该参数用[FromBody]
属性装饰,并且您的请求需要使用application/x-www-form- urlencoded
,并且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');
}
});
我试图通过web api microsoft应用程序中的post请求传递对象的参数,但传递的参数始终为null。 这是我的控制器的post方法,在调试下程序达到了方法但是dataUrlIN。url字符串始终为空 这是DataUrl的对象 这是post请求的最新版本 在发送post请求后,方法公共无效Post(Data Url dataUrlIN)中的断点被触发,但url字符串为空HelloWorl
问题内容: 我在尝试使用angularjs控制器推送数据时遇到问题。但是我所做的(IFormFile文件)总是空的。只有一些使用razor语法的示例,但是没有使用angular或jquery的示例。 HTML: 指示: 控制者 ASP.NET核心WebAPI: 我还尝试过使用formdata,因为它是在您使用razor语法发布时构造的。像这样: 也代替formData提供原始文件,如我在评论中所写
问题内容: [HttpPost] [Route(“/getter/validatecookie”)] public async Task GetRankings([FromBody] string cookie) { int world = 5; ApiGetter getter = new ApiGetter(_config, cookie); if (!await IsValidCookie(
我是Android的新手,现在我在做一个应用,这个应用我需要把数据发送到服务器上,现在我用的是Volley post方法,但是当我用Volley发送数据到服务器上的时候,参数总是显示为空,这里我附上了代码,请检查一下,这里我用的是片段。
我是新来的百里香,我有以下问题。我想在html模板内调用一个java方法,但该方法需要一个参数,但问题是,无论我为参数传递什么,结果总是空的。 类别。html: 分类控制器:
问题内容: 我有一系列通过jQuery Ajax传递给MVC JsonResult操作的参数。在大多数情况下,它们成功到达,但是有一个Date值根本没有到达。 为了使此日期成功到达,我需要使用什么考虑因素/格式?或者我需要采取什么方法? JsonResult操作: 问题答案: Microsoft使用JavaScriptSerializer对ASP.NET MVC数据进行序列化/反序列化。如果使用格