c# - ASP.net MVC timeout issue with Button Control -


i have simple asp.net mvc application dev controls. main screen has button takes date screen , end processing. view:

@html.devexpress().button(settings =>                 {                     settings.name = "loaddata";                     settings.text = "load data";                     settings.tooltip = "imports data holding api";                      settings.clientsideevents.click = "onclick";                     settings.usesubmitbehavior = false;                 }).gethtml() 

 function onclick(s, e) {         positiondate = reportingpositiondate.getdate().todatestring();        $.ajax({             type: "post",             //url: "/importdata/datafileupload",             url: "@url.action("datafileupload", "importdata")",             data: json.stringify({ positiondate: positiondate }),             datatype: "text",             contenttype: "application/json; charset=utf-8",             beforesend: function () { lpimport.show(); },             success: function (msg)             {                 importdatagridview.performcallback();                 importsuccessmessage.setvisible(true);                 importsuccessmessage.settext(msg);                 lpimport.hide();             },             error: function (xhr) {                 alert(xhr)                 importdatagridview.performcallback();             }         });     } } 

controller:

[httppost] public actionresult datafileupload(string positiondate) {     // reset validation error collection     importdatavalidationerrors = new list<importfilerecord>();     string[] errs;     try     {         returnval ="some long running process"         return content(returnval);     }     catch (exception ex)     {         throw ex;     } } 

process takes 50 minutes (or more) run (expected). controller method datafileupload actions correctly when comes returning view, hangs up. guess screen has timed out , not accepting response controller. when run same process smaller dataset, view value controller. idea going wrong here? issue button settings ? appreciate help.

jquery ajax default timeout value 0. means no timeout in ajax. if browser has timeout it's entirely possible you'll hit that.

only when timeout option specified jquery call settimeout().

also there challenge. there browser timeout ajax (xmlhttprequest), different each browser ie. guess 30 min or so. technically can set timeout : 10000000 between 2.30~3 hours.

i faced problem before. can solve progress bar. progress bar can keep refreshed view.

for simple ajax request can use.

function uploadfile(){     myapp.showprogressdialog; //show dialog     var file=document.getelementbyid('filename').files[0];     var formdata = new formdata();     formdata.append("file_name", file);     ajax = new xmlhttprequest();     ajax.upload.addeventlistener("progress", progressbarhandler, false);     ajax.addeventlistener("load", oncompletehandler, false);     ajax.open("post", "/to/action");     ajax.send(formdata); }  function progressbarhandler(event){     var percent = (event.loaded / event.total) * 100;     $('.bar').width(percent); // coming css }  function oncompletehandler(){     myapp.hidepleasewait(); //hide dialog     $('.bar').width(100); } 

Comments