MVC RedirectToAction с одного контроллера на другой — проблема с просмотром не отображается

У меня есть контроллер, в котором есть некоторые проверки.

Если по той или иной причине возникает исключение, я хочу отображать сообщения об ошибках в другом представлении в другом контроллере.

Вот как выглядит мой обработчик исключений

  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, которое вызывает проблему.

Любые предложения о том, что я делаю неправильно здесь.


person Memphis    schedule 15.09.2010    source источник


Ответы (1)


В качестве быстрого теста измените: return View(occuredError); на: return View("Error", occuredError);

где «Ошибка» — имя представления.

Мэтт

person Matt Griffiths    schedule 01.03.2011
comment
не понял дату на этом, извините! - person Matt Griffiths; 01.03.2011