【发布时间】:2016-04-25 14:00:00
【问题描述】:
我的目标是向 asp.net 5 web api 方法发送一个字符串,然后让该方法简单地返回一个字符串作为结果。
这是我的 js:
$("#btnChangeName").click(function() {
var prodName = $("#txtProductName").val();
var url = 'http://localhost:27081/api/products/changename';
$.ajax({
url: url,
type: 'POST',
dataType: 'text',
data: JSON.stringify({name: prodName}),
success: successFuncApi,
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
});
控制器:
[HttpPost]
[Route("/api/functions/changename")]
public string ChangeName([FromBody]dynamic value)
{
string newName = ChangeNameHelper(value.name.ToString());
return newName;
}
最奇怪的是,当我使用 postman 或 fiddler 并在原始正文中发送类似这样的内容时:
{"name":"John"}
它工作得很好。为什么它不适用于 AJAX 请求?我的动态参数最终为空。
是否 100% 要求始终绑定到新 Web api 中的模型?在这种情况下,我只处理一个简单的字符串输入和一个简单的字符串输出。
【问题讨论】:
标签: c# asp.net ajax asp.net-web-api asp.net-core