c# - 参数 null 是 ASP 控制器
问题描述
我向我的控制器发布了一个XmlRequest
带有本机 JavaScript 的内容,但它不接受请求正文作为参数。即,null
即使参数是字符串,它也会将其读取为a。
请求:
request.open("POST", "https://localhost:44328/CommodityTypes/PostData");
//request.setRequestHeader('Content-type', 'text'); // maybe that makes the problem?
request.send("Message");
控制器:
[HttpPost]
public string PostData(string Text)
{
return JsonSerializer.Serialize(Text);
}
很乐意得到任何建议。
在深入了解我发现的业务之后,可以将“object”指定为要解析的参数(“[FromBody]”属性保留),得到一个奇怪的对象,它提供 JSON 消息调用 ToString() 方法。如果传入 JSON 的结构可变或不均匀,则可以使用这种方法。
尽管必须有其他一些方法来处理这个问题。
解决方案
您可以创建对象data = { "text": "YourText" }
并发送JSON.stringify(data)
并且需要设置标题xmlhttp.setRequestHeader('Content-Type', 'application/json');
var uri = '/CommodityTypes/PostData';
var xmlhttp;
xmlhttp = new XMLHttpRequest();
var data = { "text": "YourText" };
var sendstr = JSON.stringify(data);
xmlhttp.open("POST", uri, true);
xmlhttp.setRequestHeader('Content-Type', 'application/json');
xmlhttp.send(sendstr);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
alert(xmlhttp.responseText);
}
推荐阅读
- java - 使用重新选择/注释修改非空字段的属性
- c# - 如何将mongodb实体映射到c#中的elasticsearch创建索引?
- logical-operators - GoogleDocs API 逻辑和编程
- python - 如何解决逐帧保存视频的问题
- angular - 从 REST API 获取值后,在 Angular js 中订阅返回值未定义
- c# - Entity Framework 6,命令拦截和存储过程
- angular - 如何配置 express 以在生产中提供 Angular 应用程序?
- c# - 在仅 Xamarin 后面的列表视图点击代码上显示警报
- html - 如何将导航栏菜单放在徽标下方?
- angularjs - 无法在 Angular 的 ng-bind 中将数据传递到控制器