2015-11-11 213 views
3

如何從剃鬚刀視圖調用Javascript方法?如何從剃刀視圖調用Javascript

一開始我嘗試

@if (TempData["myMessage"] != null) 
{ 
    @:displayMessage(); 
} 

,並在頁面渲染我真的看到了「@:displayMessage();我的HTML頁面上

於是我試着

@if (TempData["myMessage"] != null) 
{ 
    <script type="text/javascript">displayMessage();</script> 
} 

如果displayMessage函數在html頁面中存在,那麼這個函數可以工作,但是在我的情況下,displayMessage存在於一個單獨的javascript文件中。(包含在這個網頁上)

+0

剃刀是嵌入在網頁服務器代碼的簡單編程語法,你可以添加腳本在瀏覽器中執行的功能。 –

回答

3

當您渲染的頁面的這部分被渲染時,您正嘗試調用的JavaScript將被調用。您的displayMessage函數可能會或可能不會被加載,具體取決於您是從單獨的js文件加載它,引用它的腳本源是否低於您嘗試調用它的當前腳本標記等。直到窗口被加載這樣可以推遲呼叫:

@if (TempData["myMessage"] != null) 
{ 
    <script type="text/javascript"> 
     window.onload = function() { 
      displayMessage(); 
     }; 
    </script> 
} 
+0

這樣做。所以看起來調用javascript函數的正確方法是使用腳本標記而不是@: – PrivateJoker

+0

是的,否則調用將被視爲字符串文本而不是腳本。 –