在文章中,它似乎工作正常,因为它在控制器上异步调用相应的操作方法。但他使用的方法看起来就像是一个黑客,而且看起来并不优雅。简要概述了正在发生的事情:
这将是一个异步加载的独立窗口小部件。
<% using (Ajax.Form("ReportOne", null,
new AjaxOptions { UpdateTargetId = "resultOne" },
new { id="reportFormOne" })) { } %>
<script type="text/javascript">
$get("reportFormOne").onsubmit();
</script>
相应的输出格式为:
<form action="/Home/ReportOne/reportFormOne" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, { insertionMode: 0, updateTargetId: 'resultDiv' }); return false;">
<!-- Your form elements here... -->
</form>
就像我上面所说的那样,这似乎并不是一种非常优雅的方式来实现这一目标,但我一直在努力寻找替代方案(使用jQuery或其他方法),并且一直没有成功这样做。
答案 0 :(得分:2)
jQuery解决方案:在页面加载完成后从动作加载html。
<script type='text/javascript'>
$(function() {
$.load('<%= Url.Action( "ReportOne", "Home", new { id = "reportFormOne" } ) %>', null, function(response,status,xhr) {
$('#partialView').html(reponse);
});
});
</script>
...
<div id='partialView'>
</div>