0

我有一些通常使用小型模型数据的部分视图。我一直在将 Ajax.BeginForm 与 A​​jaxOptions 中定义的 js 函数一起使用,以在提交该部分时捕获部分回发的成功或失败。

我没有看到性能损失,因为我的数据很轻。目前,我一直在研究一个从 SSRS 报告中返回 HTMLFragment 的片段,该报告在控制器中呈现为“HTML40”格式。html 部分的 JSON 序列化需要很长时间,我不再将其视为一种选择。当我将 Ajax.BeginForm 更改为 Html.BeginForm 并预先渲染报告时,有效负载更轻,渲染时间更短,但现在我被卡住了。如何在不再次加载部分的情况下发出刷新命令?这就是我首先使用 Ajax.BeginForm 的原因 :( 也许有比我正在做的更好的加载数据的方法。我已经开始研究回调并以某种方式将报告片段作为原始字节 [] 或字符串反对使用 json 序列化。

谢谢

4

1 回答 1

2

您可以使用 .load() jQuery 函数将整个部分加载到 div 中:

$("#someButton").click(function(){
  $("#someDive").load("/url", {type: 'POST'}, function(){
  });
});

现在,当您单击#someButton 时,将对/url 进行AJAX 调用。/url 可以返回一个 PartialView ,它将直接加载到您的 div 中:

//controller URL
[HttpPost]
public ActionResult Index(){
    return PartialView("MyPartialView");
}

您可以像传递给常规视图一样传递模型。

于 2013-03-08T23:46:42.877 回答