JavaScript错误:在MVC2 View中关闭了条件编译

时间:2011-01-13 22:54:01

标签: c# javascript asp.net-mvc asp.net-mvc-2

我试图在MVC2视图页面中单击调用JavaScript函数。

 <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和Code是ViewModel中的值。如果我以这种方式使用SelectBenefit(<%=o.ba_Object_id %>),它的工作正常。但是,当我有两个参数时,它没有。我收到了这个错误:

conditional compilation is turned off.

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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;
});