Javascript 异步调用Html.BeginForm
在ASP.NET MVC 3应用程序中,我尝试使用Html.BeginForm helper上载文件,如:Javascript 异步调用Html.BeginForm,javascript,jquery,asp.net-mvc-3,callback,Javascript,Jquery,Asp.net Mvc 3,Callback,在ASP.NET MVC 3应用程序中,我尝试使用Html.BeginForm helper上载文件,如: <% using (Html.BeginForm("ImportFile", "Home", new { someId = Id }, FormMethod.Post, new { enctype="multipart/form-data" } )) %> 从上传期间的导入文件操作中,我需要返回状态代码(如“成功”或“失败”),并在UI上显示相应的警报。一种方法是异步调用
<% using (Html.BeginForm("ImportFile", "Home", new { someId = Id }, FormMethod.Post, new { enctype="multipart/form-data" } )) %>
从上传期间的导入文件操作中,我需要返回状态代码(如“成功”或“失败”),并在UI上显示相应的警报。一种方法是异步调用表单操作,并从JS每隔2秒检查一次状态代码。
我如何异步调用它?或者有没有其他方法来实现这一点
提前感谢。请记住,在文件上载过程中,HTTP协议有一些限制。假设您的ImportFile助手可以披露此类信息,并且可以通过REST式服务(例如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。当接收到术语信号时,回调功能应终止观察者间隔/计时器