簡體   English   中英

處理 Asp.net 錯誤 C#

[英]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);
        }
    }

因為resultIdentityResult的一種類型,但StringBuilder.Append可能需要在其中傳遞字符串值,所以如果我們想使用StringBuilder.Append來附加需要轉換為字符串的信息。

我們可以嘗試讓result對象反序列化為 JSON 字符串值的一種方法。

我們可以使用由Json.NET創建的JsonConvert.SerializeObject

StringBuilder.Append(JsonConvert.SerializeObject(result.Errors));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM