我正在尝试将生成的
HTML字符串返回到视图,以动态生成带有结果的HTML表.我无法获得返回的HTML字符串任何建议和帮助非常感谢.
这是我的控制器代码
public ActionResult ValidateTrams() { string html = ""; if (Request.Files.Count == 0 || Request.Files[0].ContentLength == 0) { } else { html = ProcessTextFile(Request.Files[0].InputStream); } return View(html); }
我试图像这样在jquery中获取这个返回的结果
$('#tramsView').live('click',function () { $.ajax({ url: '/Booking/ValidateTrams',type: 'POST',dataType: 'jsonp',success: function (data) { alert(data); $('#TramsViewFrame').html(data); },error: function (jqxhr,textStatus,errorThrown) { $(window).hideWaitScreen(); if (confirm(errorThrown)) { window.location.reload(); } } });
});
最后,下面是表单的CSHTML.在这里,我正在从提示按钮类型的表单中读取文件
<form action="#" method="post" enctype="multipart/form-data" class="forms" name="form" id="frmvalidate"> <table> <tr> <td> <input type='file' name='trams' id='ValidatetramsFile' /> </td> </tr> <tr> <td> <br /> <input name="cbDisplayUmatched" id="cbDisplayUmatched" type="checkBox" value="" checked="true" /> <label style="text-decoration: none; outline: none; font-size: 1.1em; padding: 3px 0 0px 0;"> Display rows that were <strong>NOT</strong> parsed</label> </td> </tr> <tr> <td> <br /> <div class="buttons"> <button type="submit" value="VIEW" class="ui-state-default ui-corner-all" id="tramsView">VIEW</button> </div> </td> </tr> </table> </form>
感谢您的时间,非常感谢您的帮助.亲切的问候!!!
解决方法
听起来好像你的表单仍在提交正常的回发,所以你正在做的任何异步调用都会丢失.
尝试阻止使用以下内容进行默认表单提交:
$('#tramsView').live('click',function (evt) { evt.preventDefault(); // ... rest of your code });
顺便提一下,在这种情况下,如果你正在做的只是更新#TramsViewFrame上的html,你可以使用稍微简单的$.load()方法:
$('#tramsView').live('click',function (evt) { evt.preventDefault(); $('#TramsViewFrame').load('/Booking/ValidateTrams'); });