Jquery 使用AJAX加载ASP.NET MVC部分视图的正确方法?

Jquery 使用AJAX加载ASP.NET MVC部分视图的正确方法?,jquery,asp.net-mvc,ajax,Jquery,Asp.net Mvc,Ajax,大家好。好的,情况是这样的。我希望能够加载到父页面上的一系列类似的部分视图;这与本文(模拟AJAX面板)中所述的方法大致相同 在本文中,它似乎工作得很好,因为它在控制器上异步调用了相应的操作方法。但他所使用的方法充其量也只是一种黑客手段,似乎并不十分优雅。对当前情况的简要概述如下: 这将是一个异步加载的独立小部件。 $get(“reportFormOne”).onsubmit(); 相应的输出形式如下: <form action="/Home/ReportOne/reportForm

大家好。好的,情况是这样的。我希望能够加载到父页面上的一系列类似的部分视图;这与本文(模拟AJAX面板)中所述的方法大致相同

在本文中,它似乎工作得很好,因为它在控制器上异步调用了相应的操作方法。但他所使用的方法充其量也只是一种黑客手段,似乎并不十分优雅。对当前情况的简要概述如下:

这将是一个异步加载的独立小部件。


$get(“reportFormOne”).onsubmit();
相应的输出形式如下:

<form action="/Home/ReportOne/reportFormOne" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, { insertionMode: 0, updateTargetId: 'resultDiv' }); return false;">

   <!-- Your form elements here... -->

</form>


正如我上面所说的,这似乎不是一个真正优雅的方法来实现这一点,但我一直在尝试寻找替代方法(使用jQuery或其他方法),但没有成功。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>

$(函数(){
$.load(“”,null,函数(响应,状态,xhr){
$('partialView').html(回复);
});
});
...

谢谢。这将非常有效;但是,如果我需要添加多个具有类似数据的部分视图,那么使用jQuery从数据库中获取我需要加载的每个小部件的id,然后循环调用每个操作是否有意义?这似乎非常依赖jQuery。您可以在ViewData(或您的模型)中生成所有这些,然后动态构建jQuery代码,以获取您需要的特定项。这将简化所需的客户端代码。
<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>