Razor Pages JsonResult не сериализует поля

#razor-pages #jsonresult

#страницы razor #jsonresult

Вопрос:

Пример:

 public class ClassA
{
    public string A;
}

public JsonResult OnPostTest()
{
    var a = new ClassA() { A = "test" };
    return new JsonResult(a);
}
  

Как я могу сделать поле сериализованным автоматически? У меня есть класс со многими полями, которые мне нужно сериализовать.

Ответ №1:

System.Text.Json, сериализатор по умолчанию, не предоставляет этой возможности — по крайней мере, до выпуска .NET 5:https://github.com/dotnet/runtime/issues/876

Тем временем вы можете вернуться к Json.ПОДКЛЮЧИТЕСЬ и добавьте атрибут JsonProperty к своему полю

 Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
  

Затем

 services.AddRazorPages().AddNewtonsoftJson();
  

И

 public class ClassA
{
    [JsonProperty]
    public string A;
}