在 mvc3 剃须刀 asp.net 模型中设置文件控制值



在我的MVC应用程序中,我正在对文件使用以下代码。

public HttpPostedFileBase File { get; set; }

视图

@Html.TextBoxFor(m => m.File, new { type = "file" })

一切正常.. 用于提交值,但我正在尝试从控制器模型加载文件,该文件不起作用

控制器

public ActionResult ManagePhotos(ManagePhoto model)
{
    if(ModelState.IsValid)
    {
           //upload file
    }
    else
    {
          return View(model); //contains type HttpPostedFileBase File { get; set; }
    }
}

如果我的验证失败,我如何再次加载文件输入,因为返回后,我的文件控件没有映射到模型到文件并且它是空的......

如果您知道该文件有效,并且想要暂时保留它,则可以将其保留在会话中(但请注意内存使用情况)。

如果您知道该文件有效,并希望永久保留它,请保存它并将路径保留在内存中。

如果您知道该文件无效,您将不希望也经常能够保留它。

通常,在验证失败期间,这以与密码相同的方式处理 - 需要再次提供,因此只有在其他一切正常时才要求

如果你想尽可能地

让用户体验无缝,那么请尝试以下操作:

  1. 在客户端添加javascript以验证用户输入
  2. 在服务器端,将所有文件临时存储在 tmp 文件存储中。清理超过 10 分钟的文件。当您需要将文件保存到存储中时,请执行此操作

最新更新