2013-01-21 32 views
0

的目的:執行命名服務器上的JavaScript方法

在$就命名服務器端執行的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()" }); 
     } 

回答

1

假設方法附連到窗口你可以做:

服務器

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

客戶

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

你需要從你從服務器返回值中的括號去掉。

+0

ty!它完美的工作!這是我第一次使用window [] :) – user1520494

+1

當你在JavaScript中聲明公共方法時,它們被附加到'window'對象(除非你另有指定)。所有的JS對象都是可索引的:) – James

相關問題