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

Raj*_*esh 4 javascript c# asp.net-mvc asp.net-mvc-2

我试图在MVC2视图页面上单击调用JavaScript函数.

 <a onclick=" SelectBenefit(<%=o.ba_Object_id %>,<%=o.ba_Object_Code %>)" href="#">Select</a>
Run Code Online (Sandbox Code Playgroud)

JavaScript函数

 function SelectBenefit(id,code) {
     alert(id);
     alert(code);
 }
Run Code Online (Sandbox Code Playgroud)

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

conditional compilation is turned off.
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 7

我认为如果它是一个字符串,你需要在第二个参数周围加上引号:

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

这就是说你的参数需要正确编码,我不会通过它们喜欢这个.我会将它们序列化为JSON对象,以确保一切正常.像这样:

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

然后SelectBenefit函数可能如下所示:

function SelectBenefit(benefit) {
    alert(benefit.id);
    alert(benefit.code);
}
Run Code Online (Sandbox Code Playgroud)

  • @ patel.milanb,它是我实际推荐的第二个代码片段(使用`JavaScriptSerializer`),所以不要错误地使用我在第一个代码片段中显示的内容. (2认同)