我已使用MongoDB驱动程序2.7在C#中构建了以下内容:
班级:
public class Address
{
[BsonId]
public ObjectId Id { get; set; }
public long Building_Number { get; set; }
public BsonDocument ExtraElements { get; set; }
}
控制器:
[HttpGet("{number}")]
public async Task<IActionResult> GetAddressByNumber(long number)
{
try
{
var address = _repository.GetAddressByNumber(number);
if (address == null)
{
return new NotFoundResult();
}
return new ObjectResult(address);
}
catch(Exception ex)
{
return null;
}
}
当我对控制器运行API时,所有其他元素都按预期放置在ExtraElements中。
当ObjectResult将查询结果发送回浏览器时,仅显示第一项(使JSON无效)时发生问题:
{
"id":
{
"timestamp":1540553241,
"machine":3884863,
"pid":-2023,
"increment":3833504,
"creationTime":"2018-10-26T11:27:21Z"
},
"building_Number":12345,
"extraElements":
[
{
"name":"Element01",
"value":
{
"bsonType":2,
"rawValue":"I",
"value":"I"
我收到了邮递员返回的404,但是我怀疑这是由于返回无效。
我不知道为什么可以将这些多余的元素正确地返回到C#API,而不能从控制器返回给调用者。
有什么想法吗?
答案 0 :(得分:0)
看起来我的问题的答案很简单,如下所示:
return new ObjectResult(address.ToJson());
答案 1 :(得分:0)
我省略了有关我的项目正在使用.NET Core 2.0框架的信息。
事实证明,将项目更新到最新的.NET Core框架(2.1.5),比使用.ToJson()解决方案更好地解决了这个问题。