从 Web API 获取空值
本文关键字:空值 获取 API Web | 更新日期: 2023-09-27 18:35:32
我正在尝试存储作为对话成员的字符串列表。
[DataContract]
public class Conversation
{
[Key]
[DataMember]
public string Key { get; set; }
[DataMember]
public string ConversationName { get; set; }
[DataMember]
public string Administrator { get; set; }
[DataMember]
public List<string> Members { get; set; }
public Conversation(string key, string name, string admin, List<string> members)
{
Key = key;
ConversationName = name;
Administrator = admin;
Members = members;
}
public Conversation()
{
}
}
我正在使用 Postman 向 URI 发出 Post 请求,该请求似乎工作正常,返回 201 Created 并提供一个包含正确信息的 json 对象。这是我发布的json:
{
"Key": "123",
"ConversationName": "Test",
"Administrator": "Ken",
"Members": ["y@12.com", "f@78.com"]
}
但是,当我尝试在GET方法中获取对话时,结果如下:
{
"Key": "123",
"ConversationName": "Test",
"Administrator": "Ken",
"Members": null
}
这些是我在控制器中的函数:
发布:
[HttpPost]
//[ResponseType(typeof(Conversation))]
public async Task<IHttpActionResult> PostConversation(Conversation convo)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Conversations.Add(convo);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { name = convo.Key }, convo);
}
获取:
[HttpGet]
public IQueryable<Conversation> GetConversations()
{
return db.Conversations;
}
任何帮助将不胜感激。谢谢!
该帖子基本上返回您提供的实体,显然是带有Members
的。
get 从数据库加载Conversation
。它当时不能有任何Members
,因为Members
是一个List<string>
,不可能映射到数据库列。
您可能希望帖子将Members
存储到数据库中。这不会发生,因为您应该使用Member
实体代替字符串。 Member
可以是具有Id
和string
属性的简单类。