2016-02-10 2 views
0

Как вставить переменную JavaScript в бритву? Я увеличиваю counter на количество раз, когда пользователь нажимает кнопку insert-comment, а затем у меня есть функция JavaScript, которая добавляет новые поля ввода для Comment. Тем не менее, у меня возникли проблемы с правильной установкой счетчика в качестве индекса массива, потому что я получаю сообщение «счетчик имен» не существует в текущем контексте ».Как вставить переменную JavaScript в бритву?

Модель:

public List<String> Comment {get; set;} 

Вид:

var counter= 0; 

jQuery(function($) { 
    $('#insert-comment').on("click", function(e) { 
     $(this).closest('tr').prev('tr').find('ul') 
      .append(
       '<li>' + 
       '@Html.EditorFor(model => model.Comment[counter], new { htmlAttributes = new { @class = "form-control col-xs-12" } })' + 
       '</li>'); 
    }); 
    counter++; 
}); 
+1

Вы не можете. Razor обрабатывается на сервере до запуска любого JS. После этого Razor больше не работает. Вместо этого вы, вероятно, захотите иметь локальную копию 'Comment', которую вы манипулируете. 'var comments = @ Html.Raw (Json.Encode (model.Comment));' –

ответ

0

Вы можете скопировать значение переменной в HTML-элемента с помощью бритвы.

Этот элемент можно прочитать в javascript.

0

Я не думаю, что вы можете, так как html-помощник визуализируется перед любым скриптом клиента. Я бы просто добавил html для редактора так.

'<li><input type="input" name="Comment[' + counter + ']" class = "form-control col-xs-12"></li>'; 
Смежные вопросы