【发布时间】:2016-04-15 15:10:40
【问题描述】:
在我的 .Net MVC 应用程序中,我需要处理服务器端验证。如果请求有问题,我会得到:
{
"validationMessage": message
}
StatusCode = 200。 否则,我当然会得到适合通话的响应。我的问题是我在检查验证消息然后反序列化响应时遇到了麻烦(尽管提琴手告诉我响应回来了,但我总是在那里得到 null)。
public static async Task<Response<T>> Response<T>(HttpResponseMessage response)
{
var res = new Response<T>();
if (response.IsSuccessStatusCode)
{
//check for validation messages
var serverErrorInfo = await response.Content.ReadAsAsync<ServerError>();
if (serverErrorInfo.ValidationMessage != null)
{
res.ErrorInfo = new ErrorInfo(serverErrorInfo.ValidationMessage);
}
else
{
var result = await response.Content.ReadAsAsync<T>();
res.IsSuccess = true;
res.Result = result;
}
return res;
}
我做错了什么?在第一次尝试将其读取为 ServerError 后,响应是否会被处理?因为我使用泛型,所以我不能先检查是否有响应,然后再阅读验证消息。
服务器错误代码:
[JsonObject]
public class ServerError
{
public string validationMessage{ get; set; }
}
【问题讨论】:
标签: c# asp.net asp.net-mvc