Я хочу, чтобы этот код работал:
$('#ddl').change(function () {
$('#cont').html('');
var count = getCount($('#ddl').val())
for (var i = 0; i < count ; i++) {
var html = '<div class="display-row">' +
'<div class="display-label">' +
'Vrednost:' +
'</div>' +
'<div class="display-field">' +
'Od: @Html.TextBoxFor(model => model[i].Od) Do:@Html.TextBoxFor(model => model[i].Do)' +
'@Html.ValidationMessageFor(model => model[i].Do)' +
'</div>' +
'</div>';
$('#cont').append(html);
}
});
Мне просто нужно получить значение i
для model[i]
внутри js loop.
Как я могу это достичь?
"Мне просто нужно получить значение я для модели [i] внутри js loop".
если вы этого хотите, вы можете сделать запрос ajax и получить свою модель как объект json. затем перебирайте свой список и делайте то, что хотите.
В контроллере создайте метод действий, который вернет список ваших моделей:
return json(your model list);
и в js do:
$.post(url, {}, function(data){
for(var i = 0; i < data.lenght; ++i) {
}
});
Изменить: Когда вы используете @Html.TextBoxFor(model => model[i].Od)
на стороне сервера, этот html будет сгенерирован:
<input type="text" name="[i].Od" data-val="true" data-val-required="validationMessage" />
поэтому вы можете сами создавать эти теги, и вы обычно размещаете их в форме. но для проверки вы можете это сделать:
//Remove current form validation information
$("form")
.removeData("validator")
.removeData("unobtrusiveValidation");
//Parse the form again
$.validator
.unobtrusive
.parse("form");
(последний код из этого сообщения)
Код ASP.net запускается на сервере, во-первых, прежде чем что-либо произойдет в Javascript. К моменту запуска Javascript-кода страница - это просто текст - вы не можете вызвать модель [i]. У вас есть два варианта:
Если ваша модель довольно мала, вы можете использовать код на стороне сервера, пропустить бритву и создать строку, содержащую массив javascript, из модели, исправить это на странице, а затем выполнить javascript через этот массив.
Если ваша модель (или ее данные) достаточно велика, чтобы вы не хотели писать все ее содержимое на странице, вы также могли бы создать метод на вашем контроллере, который вернет json, и вызовет ваш код javascript. через ajax.
Вы не можете этого сделать. ASP.NET генерируется на сервере, а Javascript работает только в вашем веб-браузере