MVC返回文件和清除模型状态
本文关键字:模型 状态 清除 返回 文件 MVC | 更新日期: 2023-09-27 17:52:36
我在一个页面上有一个按钮,调用方法返回文件,当有任何问题时,我将错误添加到模型状态,当不是,然后我清除它。
问题是,当我只返回文件时,如果以前有一些错误添加到模型状态,现在下载文件后,模型状态不刷新,我仍然可以看到错误。
[HttpPost]
public ActionResult Index(HttpPostedFileBase file, HomeViewModel model, string command)
{
if (!string.IsNullOrEmpty(reportPath) && !string.IsNullOrEmpty(reportName))
{
ModelState.Clear();
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, reportName);
}
ModelState.AddModelError("", "File wrong format");
return View(model);
}
当Action返回File时,它不会响应一个用viewModel呈现的新视图。ModelState也不会在视图中呈现。您可以使用开发工具栏(例如。Firebug),并在按下按钮时查看请求/响应。如果你的Actions返回文件,html页面将不会被传输。
在您的示例中,只需在按下按钮时使用JavaScript从客户端删除警告。如果下载成功,您将不再看到错误。如果您的Action返回一个Error(和ModelState),它将再次呈现并显示错误