[英]Handling Asp.net Errors C#
在我的項目中,我有一個自定義錯誤解決方案。 在控制器中,我執行 try/catch 並使用彈出窗口處理異常,而不是使用 forms 方法。 我可以正確處理模型中指定為錯誤的所有錯誤,但是我無法從AddError
結果中得到正確的錯誤。 這就是我使用的:
System.Text.StringBuilder sb = new System.Text.StringBuilder();
然后我把return content(sb.ToString());
這將表明它是否成功。 如果有錯誤我使用這個:
foreach (var key in this.ViewData.ModelState.Keys)
{
foreach (var err in this.ViewData.ModelState[key].Errors)
{
sb.Append(err.ErrorMessage + "<br/>");
}
}
當然,try/catch 的例外是:
catch (Exception ex)
{
sb.Append("Error :" + ex.Message);
}
我的問題是如何實現從上下文到 this 的AddErrors
。 我試過sb.Append(result);
和sb.Append(result.Errors);
我只在錯誤下的本地窗口中看到實際錯誤。 我希望它們出現在彈出窗口中。 順便說一句,這是一個注冊表。 注冊表通常只有AddErrors(result);
謝謝你的幫助。
更新:添加了 AddErrors
private void AddErrors(IdentityResult result)
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error);
}
}
因為result
是IdentityResult
的一種類型,但StringBuilder.Append
可能需要在其中傳遞字符串值,所以如果我們想使用StringBuilder.Append
來附加需要轉換為字符串的信息。
我們可以嘗試讓result
對象反序列化為 JSON 字符串值的一種方法。
我們可以使用由Json.NET
創建的JsonConvert.SerializeObject
StringBuilder.Append(JsonConvert.SerializeObject(result.Errors));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.