2011-01-13 9 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とコードのViewModelからの値です。このようにしてSelectBenefit(<%=o.ba_Object_id %>)を使用すると、正常に動作します。私は2つのPARAMATERSを持っている場合でも、そのnot.Iはこのエラーを取得しています:

conditional compilation is turned off. 
+0

あなたは私たち示しできますレンダリングされたHTML?私。あなたはソースを見るときに何を見ますか? – Skilldrick

答えて

7

は、私はそれが文字列である場合は、二番目のパラメータの前後に引用符を配置する必要があると思う:

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

これは言われていますあなたのパラメータは適切にコード化されている必要があり、私はそれを好きに渡すことはありません。 JSONオブジェクトとしてシリアル化して、すべてがOKであることを確認します。

<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

+0

+1の最初の行....その説明すべて... –

+2

@ patel.milanb、それは私が実際にお勧めしますので、2番目のコードスニペット( 'JavaScriptSerializer'を使用しています)だからしないでください最初のコードスニペットで示したことを間違えてください。 –

2

私はo.ba_Object_Codeを推測しているが、数ではないでしょうか?このような

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

かのjQueryを使用(最良のアプローチ、芋):あなたはまた、このように、この関数を書くことができ

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

:その周りに引用符を入れてみてください

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

ありがとうございます。 – Rajesh

関連する問題