Когда мы публикуем данные JSON в .NET API, производный класс не отображается в модели.C#

Место общения программистов C#
Ответить
Anonymous
 Когда мы публикуем данные JSON в .NET API, производный класс не отображается в модели.

Сообщение Anonymous »

У меня есть данные этого типа, и у нас есть модальное окно «СотрудникБонусДетаил», и мы сопоставляем модальный столбец производного класса в этой модели.

Код: Выделить всё

  public  class EmployeeBonusDetail
{
public int EmployeeId { get; set; }
public DateTime Date { get; set; }
public int PointsEarned { get; set; }
public string Type { get; set; }
}

public class CertificateBonusDetail : EmployeeBonusDetail
{
public string CertificateName { get; set; }
}

public class PolicyBonusDetail : EmployeeBonusDetail
{
public string Category { get; set; }
public string ToEmail { get; set; }
}

public class CUBenchBonusDetail : EmployeeBonusDetail
{
public string Course { get; set; }
}

public class CoadingStandardDetails : EmployeeBonusDetail
{
public string CoadingStandardGrade { get; set; }
}

public class ClientInteractionDetails : EmployeeBonusDetail
{
public string VerbalCommunication { get; set; }
}

public class DomainKnowledgeBonusDetail : EmployeeBonusDetail
{
public string DomainName { get; set; }
}

public class EmployeeGradingBonusDetail : EmployeeBonusDetail
{
public string Communication { get; set; }
public int CommunicationPoint { get; set; }
public string TeamCoordination { get; set; }
public int TeamCoordinationPoint { get; set; }
public string ProjectPerformance { get; set; }
public int ProjectPerformancePoint { get; set; }
public string Ownership { get; set; }
public int OwnershipPoint { get; set; }
}

public class TraineeUnderTL
{
public string tl_email { get; set; }
public List trainees { get; set; }
}

public class Trainee : EmployeeBonusDetail
{
public int trainee_emp { get; set; }
public string trainee_name { get; set; }
public string trainee_email { get; set; }
public string trainee_skill { get; set; }
public DateTime tl_assign_date { get; set; }
}

public class EmployeeBonusDetailsRequest
{
public List EmployeeSkillDetails { get; set; }
public List EmployeePointData { get; set; }
}

public class EmployeeBonusDetailsResponse
{
public string CategoryTable { get; set; }
public List Data { get; set; }
}
но когда мы публикуем данные в этом методе, столбец производного класса не отображается.

Код: Выделить всё

[Authorize]
[HttpPost(nameof(SaveGeneratedSkillBonusDetails))]
public async Task SaveGeneratedSkillBonusDetails([FromBody] EmployeeBonusDetailsRequest request)
{
if (request == null || request.EmployeeSkillDetails == null || request.EmployeePointData == null)
{
return BadRequest("Invalid data received.");
}

try
{
var employeeSkillDetails = request.EmployeeSkillDetails;
var employeePointData = request.EmployeePointData;

// Save logic goes here

return Ok(true);
}
catch (Exception ex)
{
_logger.LogError(ex.Message);
return StatusCode((int)HttpStatusCode.InternalServerError, ex.Message);
}
}
Предложите решение этой проблемы, поскольку, когда мы публикуем данные JSON этой модели, отображаются все данные, но столбец производного класса не отображается.

Подробнее здесь: https://stackoverflow.com/questions/791 ... d-in-model
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»