Asp.Net MVC和部分视图以及混合Ajax.BeginForm和Html.BeginForm

时间:2013-03-08 23:27:04

标签: c# .net ajax asp.net-mvc

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

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

由于

1 个答案:

答案 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");
}

您可以像往常一样传递模型。