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 回答