c# - Asp.NET MVC 4 Ajax Request Cancels on Submit -
issue ajax request cancel
after call processmessage form submit having issue
issue submitting page canceling ajax request, getting error.. please me on this
view
@using (html.beginform("index", "home", formmethod.post, new { id = "formupload", enctype = "multipart/form-data" })) { <div> <b>upload file</b> <input type="file" name="file" /> <input type="submit" value="upload file" name="btnupload" onclick="progressstatus();"/><br /> </div> <div> @viewbag.message </div> <div style="width: 30%; margin: 0 auto;"> <div id="progressbar" style="width: 300px; height: 15px"></div> <br/> </div> } @scripts.render("~/bundles/jquery") <script type="text/javascript"> function progressstatus() { var oreq = new xmlhttprequest(); oreq.open("get", "/home/processmessage", true); oreq.send(); setinterval(showresult, 1000); function showresult() { var result = ""; if (result !== oreq.responsetext) { result = oreq.responsetext; debugger; $("#progressbar").html(result); } } return false; } </script> controller
[httppost] public actionresult index(httppostedfilebase file) { if (file != null) { var fname = path.getfilename(file.filename); var exis = path.combine(system.web.httpcontext.current.server.mappath("~/storage/uploads"), fname); if (system.io.file.exists(exis)) { viewdata["message"] = "the file " + fname + " has exists"; } else { try { if (file.contentlength > 0) { var filename = path.getfilename(file.filename); var folderpath = server.mappath("~/storage/uploads"); fname = filename; var path = path.combine(folderpath, filename); var filebytes = new byte[file.contentlength]; if (!directory.exists(folderpath)) directory.createdirectory(folderpath); file.saveas(path); } viewdata["message"] = "the file " + fname + " has uploaded successully"; } catch (exception e) { viewdata["message"] = "the file " + fname + " not upload"; viewdata["message"] = e.message; } } } else viewdata["message"] = "please choose file"; return view(); } public class progressiveresult : actionresult { public override void executeresult(controllercontext context) { (int = 0; < 20; i++) { context.httpcontext.response.write(i.tostring()); thread.sleep(2000); context.httpcontext.response.flush(); } context.httpcontext.response.end(); } } , action returns result: public actionresult processmessage() { return new progressiveresult(); }
you have return false in click event handler cancel submitting form:
<input type="submit" value="upload file" name="btnupload" onclick="progressstatus(); return false;"/>
Comments
Post a Comment