调用html.beginform异步



在ASP.NET MVC 3中,我试图使用html.beginform助手上传文件,例如:

<% using (Html.BeginForm("ImportFile", "Home", new { someId = Id }, FormMethod.Post, new { enctype="multipart/form-data" } )) %>

从上传过程中,我需要返回状态代码(例如"成功"或"失败"),并在UI上显示适当的警报。一种方法是异步调用表单操作,从JS调用每2秒钟的状态代码。我该如何将其称为异步?还是有其他方法可以实施此操作?

预先感谢。

牢记http协议上的限制,以窥视文件上传的过程。假设您的ImportFile助手可以披露此类信息,并且可以通过RESTFUL服务访问ImportStatus.aspx,这是您可以提取其状态的方法:

var statuschecker=setInterval(){
    var rq=xmlHTTPRequestObject();
    rq.open('GET','importstatus.aspx',true);
    rq.onreadystatechange=function(){
      if (rq.readyState==4&&rq.status==200){
        if (rq.responseText=='2'){
          clearInterval(statuschecker); //stop the updater
          statuschecker=null; //prevent memory leak
          return;
        }
        if (rq.responseText=='1'){
          //display that it's still being uploaded
        }
      }//xhr status
    }
    rq.send(null);
}, 1000); //poll every second

在您的Web服务中,终止过程时返回2。收到术语信号时,回电函数应终止观察者间隔/计时器。

最新更新