Почему Newtonsoft [JsonIgnore] перестала работать в asp core mvc - PullRequest
1 голос
/ 01 августа 2020

Почему мое свойство с [JsonIgnore] отображается в возвращенном результате?

На самом деле, почему все мои атрибуты Newtonsoft не работают?

using Newtonsoft.Json;
using System;

namespace Namespace
{
    public class Model
    {
        [JsonIgnore]
        public string IgnoredProperty { get; set; } <-- IS NOT IGNORED
    }
}

Заменив его на IgnoreDataMember или ScriptIgnore не работает?

Ответы [ 2 ]

1 голос
/ 01 августа 2020

Это потому, что ядро ​​asp net, начиная с Preview 6, изменило, какой сериализатор по умолчанию он использует .

Либо измените его, добавив .AddNewtonsoftJson() к вашему MVC параметры.

services.AddControllers().AddNewtonsoftJson()

Или go для ваших моделей и вместо этого начните использовать сериализатор System.Text.Json.

 using System.Text.Json.Serialization;
 // using Newtonsoft.Json; <- instead of this
0 голосов
/ 01 августа 2020

Пожалуйста, добавьте библиотеку «System.Text. Json .Serialization», тогда она будет работать нормально.

using System;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;

namespace MyApp.CommonModels
{
    public class PostCommonModel
    {
        public long Id { get; set; }

        [Required]
        public string Title { get; set; }

        [JsonIgnore]
        public string Slug { get; set; }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...