2011-01-13 6 views
4

MVC2보기 페이지에서 클릭시 JavaScript 함수를 호출하려고합니다.JavaScript 오류 : MVC2에서 조건부 컴파일이 해제되었습니다.보기

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

자바 스크립트 함수 여기

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

ba_Object_Id 및 코드는 뷰 모델의 값입니다. 이 방법으로 SelectBenefit(<%=o.ba_Object_id %>)을 사용하면 정상적으로 작동합니다. 나는 두 PARAMATERS이 때 그렇소이다는이 오류 점점이 말했다되고

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

: 나는 그것이 문자열 인 경우 두 번째 매개 변수에 따옴표를 넣어 필요가 있다고 생각

conditional compilation is turned off. 
+0

당신은 미국을 표시 할 수 있습니다 렌더링 된 HTML? 나는. 근원을 볼 때 당신은 무엇을 보나요? – Skilldrick

답변

7

을 귀하의 매개 변수를 제대로 인코딩해야합니다 그리고 나는 그들을 좋아하지 않을 전달합니다. 모든 것을 OK로 유지하기 위해 JSON 객체로 직렬화합니다.

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

을 다음 SelectBenefit 기능은 다음과 같습니다 :

내가 o.ba_Object_Code 같은데요
function SelectBenefit(benefit) { 
    alert(benefit.id); 
    alert(benefit.code); 
} 
+0

고맙습니다. 첫 번째 줄에는 – Rajesh

+0

+1이 ... 그 모든 것을 설명합니다 ... –

+2

@ patel.milanb, 두 번째 코드 단편은 ('JavaScriptSerializer'를 사용하여) 제가 실제로 추천하는 코드입니다. 첫 번째 코드 스 니펫에 표시된 내용을 실수로 사용하십시오. –

2

가 숫자가 아닌이처럼? 주위에 따옴표를 넣어보십시오 :

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

당신은이 같은이 기능을 쓸 수있다 : (IMO, 가장 좋은 방법)

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

또는 jQuery를 사용

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

감사합니다. – Rajesh