0

通常、小さなモデル データを利用する部分ビューがいくつかあります。AjaxOptions で定義された js 関数で Ajax.BeginForm を使用して、その部分が送信されたときに部分的なポストバックの成功または失敗をキャッチしています。

データが軽いため、パフォーマンスの低下は見られませんでした。現在、コントローラーで「HTML40」形式としてレンダリングされた SSRS レポートから HTMLFragment を返す部分に取り組んでいます。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 をクリックすると、AJAX 呼び出しが /url に対して行われます。/url は、div に直接読み込まれる PartialView を返すことができます。

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

通常のビューと同じように、モデルを渡すことができます。

于 2013-03-08T23:46:42.877 に答える