0

目的:

サーバー側で名前が付けられた $.ajax で JavaScript 関数を実行し、結果を取得します。

問題:

data.ExecuteClientCode で、その場合に実行する必要がある関数の名前を取得します: "AfterFamilySelectedUpdateParameters()" しかし、私の問題は、実行するためにその文字列を設定する方法がわからないことです。

コード:

見る:

function AfterFamilySelected()
           {
                $.ajax({
                        url: "/@Model.ControllerAfterEntitySelected/@Model.ActionAfterEntitySelected" ,
                        type: "POST",
                        async: false,
                        success: function(data, status, xhr) {
                                     **data.ExecuteClientCode;**
                                  },
                        error: function(xhr, status, err) {
                            alert('error');
                        }
                    });
           }

コントローラ:

   [HttpPost]
        public ActionResult AfterFamilySelected() 
        {
            return Json(new { ExecuteClientCode = "AfterFamilySelectedUpdateParameters()" });
        }
4

1 に答える 1

1

メソッドがウィンドウにアタッチされていると仮定すると、次のことができます。

サーバ

 HttpPost]
 public ActionResult AfterFamilySelected() 
 {
    return Json(new { ExecuteClientCode = "AfterFamilySelectedUpdateParameters" });
 }

クライアント

 var callback = window[data.ExecuteClientCode];
 if (callback)
     callback();

サーバーから返す値から括弧を削除する必要があります。

于 2013-01-21T11:14:22.773 に答える