首页 > 解决方案 > 如何在 .NET 的控制器中支持作为 formbody 的继承?

问题描述

我有这样的父类

  public class BaseSchema
    {
        public DataType Type { set; get; }
        public string Label { set; get; }
        public bool Visibility { set; get; }
        public string Hint { set; get; }
    }

子类是

  public class SingleLineSchema : BaseSchema
    {
        public string CustomFieldExample { set; get; }
    }

在请求 dto 中,我使用了 BaseSchema(父级)。我的期望是能够同时接收父和子 json。

  public class UpdateFormSchemaRequestDto
    {
        public string Id { set; get; }
        public BaseSchema FormSchema { set; get; }
    }

我的控制器是

[HttpPut]
        public async Task<IActionResult> UpdateSchema(UpdateFormSchemaRequestDto updateFormSchemaRequestDto)
        {
            var response = await _formSchemaService.UpdateFormSchema(updateFormSchemaRequestDto);
            return Response.Create(response);
        }

我的期望是能够同时接收父和子 json。但我只能获得父 json。如果给定子 json,它会自动转换为父对象。那么如何支持继承还是有更好的处理方式呢?

标签: c#asp.net.net.net-core

解决方案


推荐阅读