我有一些部分视图,通常使用小型模型数据。我一直在使用Ajax.BeginForm来使用AjaxOptions中定义的js函数来捕获部分回发在提交该部分时的成功或失败。
我看到没有性能损失,因为我的数据很轻。目前,我一直致力于从控制器中以格式“HTML40”呈现的SSRS报告返回HTMLFragment。 html部分的JSON序列化需要长时间,我不再将其视为一个选项。当我将Ajax.BeginForm更改为Html.BeginForm并提前呈现报表时,有效负载更轻,渲染时间更短,但现在我被卡住了。如何在不再次加载部分的情况下发出刷新命令?这就是为什么我首先使用Ajax.BeginForm :(也许有一种更好的方式来加载数据而不是我正在做的事情。我已经开始研究回调并以某种方式使报告片段成为原始字节[]或字符串为反对使用json序列化。
由于
答案 0 :(得分:2)
您可以使用.load()jQuery函数将整个部分加载到div中:
$("#someButton").click(function(){
$("#someDive").load("/url", {type: 'POST'}, function(){
});
});
现在,当您单击#someButton时,将对/ url进行AJAX调用。 / url可以返回一个将直接加载到div中的PartialView:
//controller URL
[HttpPost]
public ActionResult Index(){
return PartialView("MyPartialView");
}
您可以像往常一样传递模型。