2011-01-13 42 views
4

我試圖在MVC2查看頁面上單擊調用JavaScript函數。JavaScript錯誤:在MVC2查看頁面中關閉條件編譯

<a onclick=" SelectBenefit(<%=o.ba_Object_id %>,<%=o.ba_Object_Code %>)" href="#">Select</a> 

JavaScript函數

function SelectBenefit(id,code) { 
    alert(id); 
    alert(code); 
} 

這裏ba_Object_Id和代碼都從視圖模型的值。如果我以這種方式使用SelectBenefit(<%=o.ba_Object_id %>),它的工作正常。但是,當我有兩個PARAMATERS其not.I正在此錯誤:

conditional compilation is turned off. 
+0

,你能否告訴我們呈現的HTML?即當你查看源代碼時你看到了什麼? – Skilldrick 2011-01-13 22:59:55

回答

7

我認爲你需要把周圍的第二個參數報價,如果它是一個字符串:

<a onclick=" SelectBenefit(<%=o.ba_Object_id %>, '<%=o.ba_Object_Code %>')" href="#">Select</a> 

這是說你的參數需要正確編碼,我不會通過它們這樣。我會將它們序列化爲JSON對象以確保一切正常。就像這樣:

<a onclick="SelectBenefit(<%= new JavaScriptSerializer().Serialize(new { id = o.ba_Object_id, code = o.ba_Object_Code }) %>)" href="#">Select</a> 

然後SelectBenefit函數可能是這樣的:

function SelectBenefit(benefit) { 
    alert(benefit.id); 
    alert(benefit.code); 
} 
+0

謝謝你的工作 – Rajesh 2011-01-13 23:12:43

+0

+1的第一行....其解釋的一切... – 2011-09-13 23:37:02

2

我猜o.ba_Object_Code不是一個數字?嘗試把它周圍的報價:

<a onclick="SelectBenefit(<%=o.ba_Object_id %>,'<%=o.ba_Object_Code %>')" href="#">Select</a> 

你也可以寫這個函數是這樣的:

<a href="javascript:SelectBenefit(<%=o.ba_Object_id %>,'<%=o.ba_Object_Code %>');">Select</a> 

或者使用jQuery(最好的方法,IMO):

$('#yourlinkid').click(function(){ 
    SelectBenefit(<%=o.ba_Object_id %>,'<%=o.ba_Object_Code %>'); 
    return false; 
});