【发布时间】:2013-05-09 19:51:55
【问题描述】:
在我的 MVC 4 应用程序中,我有一个从客户端机器上传文件的视图:
<snip>
@using (Html.BeginForm("Batch", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input class="full-width" type="file" name="BatchFile" id="BatchFile"
<input type="submit" value="Do It" />
}
<snip>
家庭控制器中的“批处理”操作获取该文件并以可能非常冗长的方式对其进行处理......甚至几分钟:
<snip>
[HttpPost]
public FileResult Batch(ModelType modelInstance)
{
// Do the batch work.
string result = LengthyBatchProcess(modelInstance.BatchFile.InputStream)
var encoding = new ASCIIEncoding();
Byte[] byteArray = encoding.GetBytes(result);
Response.AddHeader("Content-Disposition", "attachment;filename=download.csv");
return File(byteArray, "application/csv");
}
<snip>
这一切都很好,并且在批处理运行所需的时间内用户被锁定并不是一个固有的问题。事实上,他们期待它。问题是用户可能无法知道这个过程是否需要几秒钟或几分钟,我想在 LengthyBatchProcess 运行时向他们提供状态信息。我研究了不显眼的 ajax,但它似乎没有必要的功能,除非有某种方法可以链接不显眼的 ajax 调用。关于如何最好地构建这个的任何想法?非常感谢。
【问题讨论】:
标签: asp.net-mvc asp.net-ajax batch-processing