2012-02-28 59 views

回答

2

如何將其映射到一個函數:

...{ OnComplete = "Completed" }... 

<script> 
    function Completed(){ 
    one(); 
    two(); 
    } 
</script> 

MVC正在尋找一個功能的代碼來執行不是一個字符串的名稱。

+0

@my函數在不同的.js文件中,加載順序是重要的還是不可以這樣做? – 2012-02-28 14:52:57

+0

@Ingol:取決於你如何加載它們。只要函數存在,在MVC可以訪問的範圍內,但是調用所做的時間,一切都應該沒問題。 – 2012-02-28 15:33:39

2

如果你正在尋找執行JavaScript的ActionLink()點擊,你可以這樣做:

@Html.ActionLink("YourAction", null, new { onclick = "function() { one(); two(); }" }) 

但是,如果你真的希望當Action方法完成完成執行的東西,你會需要編寫自己的ActionFilter:

public class ActionExecutionFinal : ActionFilterAttribute 
{ 
    public override void OnResultExecuted(ResultExecutedContext filterContext) 
    { 
     // do something here 
    } 
} 

而且你會應用此動作方法,像這樣:

[ActionExecutionFinal] 
public ActionResult YourActionMethod() 
{ 
    return View(); 
} 
1

如果你喜歡這款

查看

OnComplete = "a" 

的JavaScript

function a() 
{ 
    b(); 
    c(); 
} 
+0

我的函數是在不同的.js文件中,加載順序是重要的還是不能這樣做,還是我需要使某些kinde的全局函數? – 2012-02-28 15:05:47

+0

如果你的js文件被加載在同一個頁面上,那麼他們會看到對方。這就是JavaScript有很多命名空間問題的原因。文件A可以有功能打印和文件B可以有功能打印。 – Tx3 2012-02-28 15:11:07

+0

但是在這個例子中,函數b和函數c和a在不同的文件中沒有區別。 – Tx3 2012-02-28 15:11:44