我想創建一個自定義錯誤頁面來處理驗證註冊表單時引發的錯誤。我正在使用C#ASP.NET MVC 4.我以很多方式嘗試了這一切,最終都遇到了各種錯誤。使用標準錯誤,系統工作正常,但它不適用於自定義錯誤。ASP.NET MVC4自定義異常處理C#
當試圖簡單地做<customErrors mode="on" />
我得到這個錯誤。
運行時錯誤
說明:服務器上出現應用程序錯誤。此應用程序的當前 自定義錯誤設置阻止查看應用程序錯誤的詳細信息。
當嘗試使用<customErrors mode="on" defaultRedirect="~/Views/Shared/Error.cshtml" />
或使用定製控制器以及<customErrors mode="On" defaultRedirect="~/Error' />
我收到此錯誤
運行時錯誤
說明:處理您的請求時發生異常。 此外,執行第一個異常的自定義 錯誤頁面時發生另一個異常。該請求已被終止。
這裏是來自控制器的適當的代碼
[HttpPost]
public ActionResult Confirm(User data)
{
Boolean error = false;
User newUser = new User(data);
if (ModelState.IsValid)
{
foreach (User u in _users)
{
if (newUser.email.Equals(u.email))
{
error = true;
}
}
if (error == true)
{
throw new Exception("That email already exists!");
}
_users.Add(newUser);
}
else
{
throw new Exception("Invalid data entry, please try again.");
}
return RedirectToAction("Login", "Countdown");
}
Errors.cshtml(錯誤控制器返回一個相似的視圖)
@model System.Web.Mvc.HandleErrorInfo
<div class="container">
<div class="row">
<div class="col-xs-1">
<img src="http://i1382.photobucket.com/albums/ah259/rogha189/running-stopwatch-1_zps95faa3c7.jpg" "></div>
<div class="col-xs-1 col-xs-offset-1">
<h3>An Error has occurred.</h3>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-xs-offset-3">
@if (Model != null)
{
<p>@Model.Exception.Message</p>
}
</div>
</div>
任何機會,「另外,執行第一個異常的自定義錯誤頁時發生另一個異常。」?你有沒有試過調試?您是否嘗試過設置無法失敗的頁面(即根本不使用'Model'或在所有必要的空值檢查中使用'''')? – 2014-11-08 03:18:39
你的錯誤控制器是怎樣的?它是否正確構建'HandleErrorInfo'模型並將其傳遞給視圖? – 2014-11-08 11:08:35