在我的.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
如果你首先將它作爲字符串讀取,該怎麼辦? –