Я пытаюсь создать модель с динамическими полями ... по сути, на моей странице есть несколько кнопок, которые добавляют текстовые поля.
У меня есть переменная - "счетчик"
@{
ViewBag.Title = "Create";
var counter = 0;
}
Я хочу увеличивать его каждый раз, когда нажимается моя кнопка, которая добавляет поле ..
<div class = "form-group">
<button class = "control-label col-md-2" id = "btnAddFieldTwo">Add Question with Multiple Answers</button>
<div class = "col-md-10">
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div id = "fields2"></div>
}
<div style = "color:blue"><b>Data:</b> @ViewBag.Data</div>
<!-- JS includes -->
<script src = "//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type = "text/javascript">
$(document).ready(function () {
var $fields = $('#fields2');
$('#btnAddFieldTwo').click(function (e) {
e.preventDefault();
@{ counter++ }
$(' <input type = "text" class = "form-control" name = "dynamicFieldTwo">Enter the question</input><br/>@Html.TextBox("Question",@counter, new { style = "color:red" }) ').appendTo($fields);
});
});
</script>
</div>
</div>
Я подумал, что добавление @ {counter ++} прямо над строкой, которая добавляет динамическое текстовое поле, будет работать. Но переменная счетчика увеличивается только один раз, независимо от того, сколько раз я нажимаю кнопку. Как увеличивать счетчик при каждом нажатии кнопки?
Вы можете показать мне, как?
У меня нет под рукой точного кода, но начну с того, что посмотрим, что выводит @Html.TextBox("Question",@counter, new { style = "color:red" }) в исходном коде страницы. Как счетчик используется в этом выводе? В своем коде JavaScript реплицируйте этот вывод, увеличивая значение счетчика.
@ Html.TextBox ("Question", # HERE #, new {style = "color: red"}) ---- как мне поместить туда переменную JavaScript, она называется counter? - ставлю <script> int counter = 0; </script> вверху моей страницы и чуть выше печати типа ввода я помещаю counter ++;
Вы не помещаете туда переменную JavaScript, это код C#. Возможно, вам может потребоваться начать с некоторого базового понимания разницы между кодом на стороне клиента и кодом на стороне сервера. Этот вопрос, хотя и в PHP, демонстрирует концепцию очень канонически: stackoverflow.com/q/13840429/328193 Серверный язык не важен, здесь концепция точно такая же. Что вам нужно сделать, так это полностью управлять страницей в клиентском коде. Итак, вам нужно начать изучать, как выглядит ваш клиентский код. Начиная с того, что выводит на страницу @Html.TextBox().



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш счетчик серверный. Вам нужен счетчик сторона клиента для увеличения во время событий щелчка на стороне клиента.