在我的.Net MVC应用程序中,我需要处理服务器端验证。如果有什么问题请我得到这个:ASP.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之后,该响应是否被处理?由于我使用泛型,我不能首先检查是否有响应,而不是读取validationMessage。
SERVERERROR代码:
[JsonObject]
public class ServerError
{
public string validationMessage{ get; set; }
}
不幸的是整个ServerErrorInfo对象为null。一旦我没有条件地切换订单(只是首先将其作为响应对象读取,然后将其作为一个错误,我在puropose上创建错误的请求)。内容不会被反序列化为响应(这是显而易见的,因为没有任何反序列化,但也不会反序列化状态消息。使用套管也没有帮助。当我尝试ReadAsAsync时,内容长度是36,验证信息必须存在 –
cAMPy
如果你首先将它作为字符串读取,该怎么办? –