У меня есть контроллер, в котором есть некоторые проверки.
Если по той или иной причине возникает исключение, я хочу отображать сообщения об ошибках в другом представлении в другом контроллере.
Вот как выглядит мой обработчик исключений
catch (Exception ex)
{
string infoMsg = "Delete the user and recreate is with an appropriate username of both a first and last name which is required for a doctor";
string errorMsg = ex.Message;
// ErrorController ec = new ErrorController();
return this.RedirectToAction("Index", "Error", new { errorMessage = errorMsg, infoMessage = infoMsg });
}
Это ActionResult получает вызов.
public ActionResult Index(string errorMessage, string infoMessage)
{
var db = new DB();
OccuredError occuredError = new OccuredError();
occuredError.ErrorMsg = errorMessage;
occuredError.InfoMsg = infoMessage;
DateTime dateTime = DateTime.Now;
occuredError.TimeOfError = dateTime;
db.OccuredErrors.InsertOnSubmit(occuredError);
db.SubmitChanges();
return View(occuredError);
}
Это представление индекса ошибок, которое строго типизировано.
<h2>Index</h2>
<table>
<tr>
<th></th>
<th>
Error Message
</th>
<th>
Info Message
</th>
<th>
Time Of Error
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.ActionLink("Details", "Details", new { id=item.ErrorId })%> |
</td>
<td>
<%= Html.Encode(item.ErrorId) %>
</td>
<td>
<%= Html.Encode(item.ErrorMsg) %>
</td>
<td>
<%= Html.Encode(item.InfoMsg) %>
</td>
<td>
<%= Html.Encode(String.Format("{0:g}", item.TimeOfError)) %>
</td>
</tr>
<% } %>
</table>
Моя проблема в том, что пользователь НЕ перенаправляется из исходного представления (того, которое имело исключение) в представление индекса ошибок. При отладке я вижу, что он проходит через индекс ошибок ActionResult, и данные помещаются в БД. Я думаю, что есть что-то с отображением представления Index, которое вызывает проблему.
Любые предложения о том, что я делаю неправильно здесь.