0

我的情况很常见。我的 Web 管理中有一个主详细信息环境。我需要能够从对话框中选择大约 3500 条记录。

这就是我需要分页的原因。我的实现是在其中使用 JQuery Dialog 和 MVC 3 partial View。我需要在不刷新下划线页面的情况下刷新已打开的 JQuery 对话框的内容的可能性。

在任何页面单击 JQuery 对话框中的局部视图后

 <dt>
    <a href="/News/SelectArtist?PageId=2">B</a>
 </dt>
 <dt>
    <a href="/News/SelectArtist?PageId=3">C</a>
 </dt>

我的页面已刷新,JQuery 对话框消失了。

这种情况有什么解决办法吗?

4

1 回答 1

0

尚不清楚 News/SelectArtist 是否是应该返回您的局部视图的控制器操作,但在这里我将如何做到这一点。

您可以通过 ajax 调用此操作并刷新 jQuery 对话框的内容。

假设您的 jQuery 对话框有一个 div 包装整个内容(从您的局部视图):

<div id="dialog-content">
...
<!-- this is the content of your partial view -->
</div>

为您的每个页面链接添加一个 css 类和一个 data-pageid 来调用您的 SelectArtist 操作,如下所示:

<dt>
<a class="page-trigger" href="#" data-pageid="2">B</a>
</dt>

从脚本块:

$(function() {
  $('.page-trigger').click(function() {
    var pageId = $(this).data('pageid');
    $.ajax('/News/SelectArtist?PageId=' + pageId, { }, function(data) {
      $('#dialog-content').html(data);
    });
  });
});

确保您的 SelectArtist 操作具有该[HttpPost]属性。您的对话内容将在没有页面请求的情况下更新。

[HttpPost]
public ActionResult SelectArtist()
{
  int pageId = int.Parse(Request.QueryString["pageId']);
  ...
  return PartialView(viewModel);
}
于 2012-11-15T21:29:31.577 回答