【问题标题】:.Net Core 2.0 replacement for HttpResponseBase.Net Core 2.0 替代 HttpResponseBase
【发布时间】:2017-11-19 11:32:53
【问题描述】:

我正在将一些代码从旧的 MVC 5 应用程序移植到 Core 2.0 应用程序。

SerializeData 方法失败,因为 HttpResponseBase 不再在 Core 2.0 中,而且我似乎无法在任何 Core 库中找到合适的替代品。 Resharper 甚至没有检测到要添加为依赖项的正确库。

private void SerializeData(HttpResponseBase response)
    {
        if (ErrorMessages.Any())
        {
            Data = new
            {
                ErrorMessage = string.Join("\n", ErrorMessages),
                ErrorMessages = ErrorMessages.ToArray()
            };
            response.StatusCode = 400;
        }
        if (Data == null) return;
        response.Write(Data.ToJson());
        {
        }
    }

public static class JsonExtensions
{
    public static string ToJson<T>(this T obj, bool includeNull = true)
    {
        var settings = new JsonSerializerSettings
        {
            ContractResolver = new CamelCasePropertyNamesContractResolver(),
            Converters = new JsonConverter[] { new StringEnumConverter() },
            NullValueHandling = includeNull ? NullValueHandling.Include : NullValueHandling.Ignore
        };
        return JsonConvert.SerializeObject(obj, settings);
    }
}

【问题讨论】:

  • 您可以尝试的是:对于状态码 400,使用 var badRequest = BadRequest();对于数据,看起来像一个对象:尝试 var objectData = Json(Data);希望对您有所帮助。

标签: c# json http


【解决方案1】:

参考以下包:

using Microsoft.AspNetCore.Http.HttpResponse;

并将HttpResponseBase 更改为HttpResponse:

private void SerializeData(HttpResponse response)

【讨论】:

  • @ceferrari...在某个地方,你知道,去查找所有 asp.net 库的列表吗?将使搜索答案变得更加容易
  • 看看包裹Microsoft.AspNetCore.All。如果您创建一个新的Core web 项目,它将被自动引用
猜你喜欢
  • 1970-01-01
  • 2019-06-29
  • 2019-12-03
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
相关资源
最近更新 更多