Синтаксисная ошибка в видом на бритву при прохождении свойств модели в качестве параметров на функцию JavaScript -- javascript поле с участием asp.net-mvc поле с участием razor поле с участием visual-studio-2012 пол Связанный проблема

Syntax error in Razor view when passing model properties as parameters to javascript function


12
vote

проблема

русский

Я получаю <код> Syntax error на каждой запятой (<код> , ) и на последнем кронштейне (<код> ) ) в следующем коде:

 <код> <script type="text/javascript">     Filters.priceRangeInit(@Model.Min, @Model.Max, @Model.From, @Model.To); </script>   

Функция JavaScript находится в другом файле и выглядит так:

 <код> Filters = {     priceRangeInit: function (min, max, from, to) {         $('#price-range-slider').slider({             min: min,             max: max,             step: 50,             values: [from, to],             slide: function (event, ui) {                 $('#left-price-range-amount').val(ui.values[0]);                 $('#right-price-range-amount').val(ui.values[1]);             }         });     } };   

Модель выглядит так:

 <код> public class PriceRangeFilterModel {     public int Min { get; set; }     public int Max { get; set; }     public int From { get; set; }     public int To { get; set; } }   

Я использую с помощью Visual Studio 2012, ASP.NET MVC 3 и Razor и все работает нормально в браузере, но я хочу избавиться от 4 синтаксических ошибок, которые я получаю в IDE.

Если я передаю параметры как <код> strings я больше не получаю ошибки, но тогда мне придется бросить каждую вернуться к <код> int , чтобы сделать ползунок работать :

 <код> ID    <- c(1,1,1,2,2,2,2,3,3) Value <- c(2,3,5,2,5,8,17,3,5) Event <- c(1,1,2,1,2,1,2,2,2)  group <- data.frame(Subject=ID, pt=Value, Event=Event) 0  

Есть ли у вас какие-либо другие идеи о том, как написать этот звонок, чтобы я не получил синтаксические ошибки?

Английский оригинал

I get a Syntax error on each comma (,) and on the last bracket ()) in the following code:

<script type="text/javascript">     Filters.priceRangeInit(@Model.Min, @Model.Max, @Model.From, @Model.To); </script> 

The javascript function is in another file and looks like this:

Filters = {     priceRangeInit: function (min, max, from, to) {         $('#price-range-slider').slider({             min: min,             max: max,             step: 50,             values: [from, to],             slide: function (event, ui) {                 $('#left-price-range-amount').val(ui.values[0]);                 $('#right-price-range-amount').val(ui.values[1]);             }         });     } }; 

The model looks like this:

public class PriceRangeFilterModel {     public int Min { get; set; }     public int Max { get; set; }     public int From { get; set; }     public int To { get; set; } } 

I use using Visual Studio 2012, ASP.NET MVC 3 and Razor and everything works fine in the browser, but I want to get rid of the 4 syntax errors I get in the IDE.

If I pass the parameters as strings I don't get errors anymore, but then I'd have to cast each one back to int to make the slider work:

<script type="text/javascript">     Filters.priceRangeInit('@Model.Min', '@Model.Max', '@Model.From', '@Model.To'); </script> 

Do you have any other ideas about how to write this call so that I don't get syntax errors?

</div
           
 
 

Список ответов

14
 
vote
vote
Лучший ответ
 

Razor Intellisense просто разбит в Visual Studio. Ваш код совершенно действителен, и вы должны игнорировать эти предупреждения и надеяться, что Microsoft исправит его в будущих версиях.

 

Razor Intellisense is just broken in Visual Studio. Your code is perfectly valid and you should ignore those warnings and hope that Microsoft will fix it in future versions.

</div
 
 
1
 
vote

Чтобы подавить синтаксические ошибки, либо оберните значения строк в кавычках или обертывающих номера в Parсенте () следующим образом:

 <код> var myInt = parseInt('@Model.MyInt'); var myStr = '@Model.MyString';   

или, для вашего примера:

 <код> Filters.priceRangeInit(parseInt('@Model.Min'), parseInt('@Model.Max'), parseInt('@Model.From'), parseInt('@Model.To'));   

Конверсия по кругу раздражает, но не требует времени, правда.

 

To suppress the syntax errors, either wrap string values in quotes or wrap numbers in parseInt() as follows:

var myInt = parseInt('@Model.MyInt'); var myStr = '@Model.MyString'; 

Or, for your example:

Filters.priceRangeInit(parseInt('@Model.Min'), parseInt('@Model.Max'), parseInt('@Model.From'), parseInt('@Model.To')); 

The roundtrip conversion is annoying but takes no time, really.

</div
 
 

Связанный проблема

3  Angularjs: Как активировать первый ненулевой элемент в Ngrepeat?  ( Angularjs how to activate first non zero item in ngrepeat ) 
для объекта, такого как <код> notification: { "text":0, "image":2, "video":0 } У меня есть <код> ng-repeat ввиду <код> <div ng-repeat="items...

0  Как вы делаете Div пойти по другому меню Div / NAV, которое не исправлено?  ( How do you make a div go under another div nav menu which is not fixed ) 
Я пытаюсь сделать Div, идут под очередной div, в котором ни один не фиксирован элементы. Вот мой код: <Код> ul { list-style-type: none; margin: ...

183  Вертикально центрирующее модальное окно Bootstrap  ( Vertically centering bootstrap modal window ) 
Я хотел бы центрировать мою модаль на ViewPort (Middle), я пытался добавить некоторые свойства CSS <код> .modal { position: fixed; top:50%; left:50%; } ...

1  Функция валидации угловых JS Возвращает до завершения вызова API для проверки  ( Angular js validation function returns before the api call for validation is com ) 
<код> if (!validate()) { return; }; function validate() { var nameIsValid = ...

1  Если для JavaScript в XSLT не работает [дубликат]  ( If greater than javascript into xslt doesnt work ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

0  Boxy Эта отправка не работает  ( Boxy this submit does not work ) 
У меня есть несколько форм в моем коде, и я хочу назначить подтверждающее поле, чтобы показать, прежде чем он будет отправлен. Следовательно, я использую Bo...

1  jquery адрес плагин  ( Jquery address plugin issue ) 
Я использую плагин jQuery Address, я реализовал плагин на странице списка, когда я нажимаю на одну из ссылок, функция будет вытащить данные, используя AJAX и ...

0  Почему это работает над сафари и Firefox, но не на хроме?  ( Why is this working on safari and firefox but not on chrome ) 
У меня есть адаптивное меню навигации, он работает следующим образом: при изменении размера окна появляется значок «Гамбургер» (три строки). Нажатие на этот з...

0  Разрежьте строку в JavaScript [Закрыто]  ( Cut the string in javascript ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт. Этот вопрос не соответствует Рекомендациям переполнения ...

2  Как получить выделенные тексты?  ( How to get the highlighted texts ) 
Я пытаюсь получить выбранные тексты от пользователя (выделенный текст, который выделяет пользователь). У меня есть следующее: <код> function getSelectedTe...

2  Совет инструмента не работает на текстовой зоне Bootstrap  ( Tool tip not working on text area bootstrap ) 
У меня есть форма Bootstrap 3, на которой я применяю Tootip через скрипт. Toottip работает нормально на поле ввода, но не работает над Textarea. <код> <div ...

21  Angularjs NG-модель внутри NG-Repeat имеет плохую производительность  ( Angularjs ng model inside ng repeat has poor performance ) 
У меня проблема с производительностью с угловой в следующем сценарии: <код> <div ng-repeat="a in array"> <input ng-model="something"> </div> Я писал к...

5  модальный всплывающий как Google  ( Modal pop up like google ) 
Как сделать модальное всплывающее окно, как Gmail (когда мы пытаемся загрузить EXE, который генерирует крышки прокрутки страницы) ...

0  Попытка вернуть массив объектов для просмотра, получить «10 $ digest () итераций  ( Trying to return array of objects to view get 10 digest iterations reached ) 
Я пытаюсь создать токенизатор, где пользователь вводится в форматную строку, а пользовательский интерфейс дает им предварительный просмотр анализатора. Когда ...

0  Нужен React Router Pro, чтобы помочь мне  ( Need a react router pro to help me ) 
Итак, сегодня я играл с маршрутизатором RACT и попытался изменить это Пример . Я хочу достичь этого: . Боковой NAV отображает только имена Когда пол...