页面加载后的部分渲染

时间:2010-12-21 11:47:56

标签: jquery asp.net-mvc ajax

我有一个包含一些用户控件的页面。我想在回发之后像ajax渲染一样加载这些用户控件。

每个usercontrols显示数据库中的列表,我不希望用户在服务器代码构建响应时等待我认为如果为用户显示页面并在通过ajax请求加载usercontrol之后它将是有用的。

ASP.NET MVC中是否存在解决方案?这个问题是否存在解决方案?

感谢提前:l。

2 个答案:

答案 0 :(得分:5)

只需使用jQuery绑定从action方法返回的HTML(应该返回部分视图结果 - 例如用户控件/ partial的输出):

<强>控制器:

[HttpGet]
public PartialViewResult GetSomeData()
{
   var data = somewhere.GetSomething();
   return PartialView(data); // partial view should be typed to data.
}

<强> jQuery的:

$(document).ready(function() {
   $.get('/home/getsomedata/', function(data) {
      $('#target').html(data);
   });   
});

答案 1 :(得分:3)

我通常这样做:

在标记中,我保留了用于加载用户控件的空间,如

<div id="i-tabs-5">
    <div style="text-align:right;margin-bottom:6px;">...</div>
    <div id="issueNoteListPlaceholder"></div>
</div>

然后在DOM Ready上进行ajax调用,返回部分视图结果并替换占位符的内容

$(document).ready(function () {
    loadIssueNotes();
});

function loadIssueNotes() {
    $.ajax({
        type: "get",
        dataType: "html",
        url: '<%: Url.Content("~/Controller/Action") %>',
        data: {},
        success: function (response) {
            $("#issueNoteListPlaceholder").html('').html(response);
        }
    });
}