Нет перенаправления после отправки - PullRequest
1 голос
/ 18 ноября 2010

Я пытаюсь использовать Ajax, чтобы позволить пользователю сохранять информацию (отображать уведомление о сохранении, которое затем исчезает) или отправлять (перенаправить на страницу «Ваша форма отправлена»). В обоих случаях мне требуется проверка ошибок (которую я сделал через Html.EnableClientValidation(). И она работает правильно).

В настоящее время моя форма выглядит следующим образом ...

<% using (Ajax.BeginForm("Index", "Scenario", new AjaxOptions { 
   HttpMethod = "Post", OnBegin = "scenarioCheckForErrors", 
   OnSuccess = "scenarioSubmitSuccess" }, new { id = "scenarioForm" }))
{ %>
  <!-- My form goes here. -->
  <div class="submitButtons">
    <input type="submit" value="Save" name="submitButton" />
    <input type="submit" value="Submit" name="submitButton" />
  </div>
} %>

Все, что делает scenarioCheckForErrors, это изменяет некоторые изображения, если во время проверки были обнаружены ошибки. scenarioSubmitSuccess отображает уведомление о сохранении.

Между прочим, я использую свой контроллер для фактической обработки сохранения данных и выполнения всех подобных «вещей». Вот часть метода:

[HttpPost]
[Header("Setup Scenario")]
public ActionResult Index(string submitButton) {
  // Determine whether to just save or to save and submit.
  switch (submitButton)
  {
      case "Save":
          return Save(scenario);
      case "Submit":
          return Submit(scenario);
      default:
          // Should never be reached.
          return View();
  }
}

И методы сохранения и отправки ...

/// <summary>
/// Save a the scenario.
/// </summary>
/// <param name="scenario"></param>
/// <returns></returns>
private ActionResult Save(Scenario scenario)
{
    if (ModelState.IsValid && TryUpdateModel(scenario, "Scenario"))
    {
        // Save the scenario.
    }

    return View(scenario);
}

/// <summary>
/// Submit the scenario.
/// </summary>
/// <param name="scenario"></param>
/// <returns></returns>
private ActionResult Submit(Scenario scenario)
{
    if (TryUpdateModel(scenario, "SaveScenario"))
    {
        // Call Save() method, and then...
        return Redirect("/Scenario/Done");
    }

    return View(scenario);
}

Я борюсь с тем, как сделать так, чтобы перенаправление происходило со страницей «Готово», но все еще позволяет диалоговому окну «Вы успешно сохранили ...» всплывающее окно при сохранении пользователем. Что я не правильно делаю?

1 Ответ

0 голосов
/ 18 ноября 2010

Вместо перенаправления из представления, вы можете перенаправить, используя javascript после того, как вы показали «Вы успешно сохранили».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...