我知道你提到不使用AJAX做文件上传,但我认为这个解决方案是一个非常简单的。
使用下面的jQuery插件(https://blueimp.github.io/jQuery-File-Upload/),您可以自动执行该过程,并且如果文件中存在任何验证问题,则可以返回以下模型并返回错误。
string errors = "Errors returned from complex logic";
if (!String.IsNullOrEmpty(errors))
{
// error response
status = new ViewDataUploadFilesResult()
{
name = Path.GetFileName(hpf.FileName),
size = hpf.ContentLength,
error = errors
};
}
这里需要的是jQuery的文件上传文档相匹配的响应类:https://github.com/blueimp/jQuery-File-Upload/wiki/Setup
public class ViewDataUploadFilesResult
{
public string name { get; set; }
public int size { get; set; }
public string type { get; set; }
public string url { get; set; }
public string error { get; set; }
}
如果我理解正确,因为文件已在用户的计算机上,你只需要将文件关联到他们正尝试上传的当前文件以返回错误。并且为了使它们不必重新选择要上传的文件。我没有看到任何其他理由需要将实际文件返回给用户,因为他们已经有了他们正在上传的文件。
这很简单,使用Ajax解决。使用该方法有什么问题? – Shoe 2014-12-05 20:13:07