Ошибка JavaScript: условная компиляция в MVC2 View отключена - PullRequest
4 голосов
/ 14 января 2011

Я пытаюсь вызвать функцию 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 и Code являются значениями из ViewModel. Если я использую SelectBenefit(<%=o.ba_Object_id %>) таким образом, он работает нормально. Но когда у меня есть два параметра, его нет. Я получаю эту ошибку:

conditional compilation is turned off.

Ответы [ 2 ]

7 голосов
/ 14 января 2011

Я думаю, что вам нужно поместить кавычки вокруг второго параметра, если это строка:

<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);
}
2 голосов
/ 14 января 2011

Я думаю, 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;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...