我知道你提到不使用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