ASP.NET GET 请求总是 returns 空白

ASP.NET GET request always returns blank

我正在尝试为 return 创建一个 JSON 响应的端点。我已尝试将其缩小到仅包含对象,但我收到的只是 {} 或 [{}] 作为响应。调试后我确认对象被正确创建但是当 returning 响应时它总是空白。下面是简化的代码,但仍然有同样的问题。知道我做错了什么吗?

[Route("{application}")]
[HttpGet]
public IActionResult Get(string application)
{
    List<RequestedSetting> requestedSettings = new List<RequestedSetting>();
    RequestedSetting rs = new RequestedSetting("foo", "bar");
    requestedSettings.Add(rs);
    return Json(requestedSettings);
}

public class RequestedSetting
{

    public string Name;
    public string Value;

    public RequestedSetting(string name, string value)
    {
        Name = name;
        Value = value;
    }
}

我也试过这个:

[Route("{application}")]
[HttpGet]
public List<RequestedSetting> Get(string application)
{
    List<RequestedSetting> requestedSettings = new List<RequestedSetting>();
    RequestedSetting rs = new RequestedSetting("foo", "bar");
    requestedSettings.Add(rs);
    return requestedSettings;
}

System.Text.Json 中的字段不支持序列化。有关详细信息,请参阅 docs

相反,将您的 class 更改为使用属性:

public class RequestedSetting
{

    public string Name { get; set; }
    public string Value { get; set; }

    public RequestedSetting(string name, string value)
    {
        Name = name;
        Value = value;
    }
}