У меня есть форма ASP.NET MVC, которая при отправке может вернуть либо ActionResult
, если произошла ошибка с данными, либо, если все в порядке, она перенаправляет на другое действие, которое возвращает FileResult
.
Я создал небольшой пример, чтобы дать представление о том, что я делаю. Это HTML:
<%
using (Html.BeginForm())
%>
<%= Html.ValidationSummary(
"Edit was unsuccessful. Please correct the errors and try again.") %>
<%= Html.TextBox("YourName", Model.YourName)%>
<%= Html.ValidationMessage("YourName", "*") %>
<input type="submit" />
<% } %>
и код контроллера:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyPostSample(string YourName)
{
if (string.IsNullOrEmpty(YourName))
{
ModelState.AddModelError("YourName", "You must specify a name");
}
if (ModelState.IsValid)
{
// get the file
RedirectToAction("GetFile");
}
else
{
// return this actions View with errors
return View();
}
}
public FileResult GetFile(string YourName)
{
// return file here
}
Причиной ActionResult
является заполнение ошибок ModelState, чтобы пользователь мог исправить и повторить попытку.
Это все работает нормально, за исключением того, что я хотел бы, чтобы форма была сброшена или очищена, если файл возвращается сервером. В настоящее время пользователь получает диалог File, но форма сохраняет отправленные значения. Что я могу сделать, чтобы сбросить форму после успешной отправки?