我有一个像这样的InputModel:
smtp-id
但我真正想要的是将ModelBinder绑定到 {
"email":"john.doe@sendgrid.com",
"timestamp": 1337197600,
"smtp-id":"<4FB4041F.6080505@sendgrid.com>",
"sg_event_id":"sendgrid_internal_event_id",
"sg_message_id":"sendgrid_internal_message_id",
"event": "processed"
},
,因为这是数据从SendGrid到达的方式。
这可能吗?
这是发布的内容:
write
答案 0 :(得分:2)
您可以使用JsonProperty
属性装饰您的媒体资源,如下所示:
public class InputModel{
[JsonProperty("first_name")]
public string FirstName{get;set;}
}
它适用于序列化和反序列化。
答案 1 :(得分:0)
答案 2 :(得分:0)
ASP.NET Core 3.0 以后默认使用 System.Text.Json 而不是 Newtonsoft.Json(又名 Json.NET),所以你应该使用 JsonPropertyName
属性:
using System.Text.Json.Serialization;
public class InputModel
{
[JsonPropertyName("smtp-id")]
public string SmtpId { get; set; }
}
如果你仍然想使用 Newtonsoft.Json,你必须:
dotnet add package Microsoft.AspNetCore.Mvc.NewtonsoftJson
public class Startup
{
...
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddNewtonsoftJson();
...
}
...
}