2014-02-12 27 views
0

我正在嘗試創建一個表格標題,當點擊時提醒其文本。我無法將Razor變量傳遞給JavaScript函數參數。什麼是一個很好的解決方法?你如何獲得JavaScript來提醒Razor變量?

這裏是我的代碼:

@foreach (var web in Model.Webinars) 
{ 
    var title = web.Filename; 
    if (!String.IsNullOrEmpty(title)) 
    { 
     // If filename is too long, shorten it 
     if (title.Length > 10) 
     { 
      title = title.Substring(0, 10) + "..."; 
     } 
     // Create a header that alerts when clicked 
     // Errors if I pass @title in alert() 
     <th onclick="alert(@title)">@title</th> 
    } 
} 

我得到的是這樣的一個錯誤:

JavaScript critical error at line 71, column 34 in 
http://localhost:64023/Webinar/Reports\n\nSCRIPT1010: Expected identifier 
+1

嘗試' @標題' – Satpal

回答

2

你需要在引號包裹@title

<th onclick="alert('@title')">@title</th> 
+1

...這是因爲'@ title'就像是一個宏文本是與該內容替換串。 –

1

我覺得@ Satpal的答案是一半的權利,你需要在引號中包裝@title,如

<th onclick="alert('@title')">@title</th> 

但是您還需要將<th>包含在<table>元素之下,否則它仍然不起作用。

<table> 
    <th onclick="alert('@title')">@title</th> 
</table> 
+1

OP尚未發佈完整的代碼。由於OP使用'@ foreach',他必須迭代並創建表頭 – Satpal