Я пытаюсь использовать 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);
}
Я борюсь с тем, как сделать так, чтобы перенаправление происходило со страницей «Готово», но все еще позволяет диалоговому окну «Вы успешно сохранили ...» всплывающее окно при сохранении пользователем. Что я не правильно делаю?