【发布时间】: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);希望对您有所帮助。