1

JQuery ajaxによって呼び出されるコントローラーアクションがあり、うまくいけば「結果」の内容を要求元のページに返します。これまでのところ...

コントローラ

    public ActionResult DynCalc(resultsModel model){
    ...
    //code that populates model - all working ok
    ...
     if (Request.IsAjaxRequest())
          {
            return PartialView("results", model.Results);
          }
          else
          {
            return null; //Handle this later
          }
    }

これにより、有効なモデルが返されます。JavaScript から呼び出されます:

     $.ajax({
            url: "/Test/DynCalc",
            type: "POST",
            data: $("#frmResults").serialize(), //This part works
            dataType: "html",
            success: function (result) {
                $('#resultsSection').html(result);
                $('#hide_panel a').flash("#111", 1000);
            }
        });

成功は決してヒットしません。うまくいけば、誰かが私がばかげていて、明らかな何かを見逃していると言ってくれますか?

私の部分的なビューの結果は、javascript を含む HTML ページです。次のものがあれば

Hello world私の結果ビューでは、それは問題なく動作し、スクリプトが入っていても動作しません

私は正しい軌道に乗っていますか?コントローラーの戻り値のタイプを変更する必要がありますか? またはJSONを使用していますか?

結果ページの内容は投稿しませんでした。ドキュメント全体であろうと単純であろうと関係ありません<b>hi</b>。同じことを行います。

4

2 に答える 2

1

ビューだけを返すようにしてください。この場合の結果は完全なビューであるため (アクションの結果は HTML、XML、JSON など、何でもかまいません)。ビューの一部をレンダリングする方法としてのみ、 PartialView を使用してください。

たとえば、MasterPage でユーザー情報を「常に」レンダリングしたい場合:@RenderAction("UserInfoAction", "UserController")

于 2012-09-25T10:37:21.387 に答える