在将时间传输到用 WebApi 编写的服务器时遇到问题。我怀疑数据以 Json 格式被错误地序列化。我以 DateTimeOffset 格式传递数据,客户端是 WPF 中的一个简单表单。
客户端上的数据模型(在服务器上类似,只有 Id 的属性):
public class Person
{
public int Id { get; set }
public string Name { get; set; }
public string LastName { get; set; }
public string Department { get; set; }
public DateTimeOffset PhotoUploadDateTime { get; set; }
public string Photo { get; set; }
}
发送方式
private void AddUserClick(object sender, RoutedEventArgs e)
{
var fileModel = new Person
{
//Id = new Guid(),
Name = txtName.Text,
LastName = txtLastName.Text,
Department = txtDepartment.Text,
PhotoUploadDateTime = DateTimeOffset.UtcNow,
Photo = Convert.ToBase64String(image)
};
var client = new WebApiSender(urlAddress);
client.AddPerson(fileModel);
MessageBox.Show("File has been uploaded");
}
AddPerson HttpClient 方法:
public async Task AddPerson(Person person)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseAddress);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsJsonAsync<Person>("api/employee/", person);
if (!response.IsSuccessStatusCode)
{
throw new Exception("Error when adding file!");
}
}
}
在客户端上填充数据模型
到达控制器并写入数据库的数据
结果,除了时间和日期之外,有效值会在控制器中到达服务器。
问题解决了。陈词滥调不专心。模型中的属性有不同的名称,但没有涵盖 JsonProperty 属性。
这是由服务器发送的,在客户端模型中,该属性被命名为:
但不是