Неправильные значения, публикуемые в представлении после динамического удаления строк

Сунь Цзы, древний китайский стратег, генерал и философ, сказал:

Говорят, что если вы знаете своих врагов и знаете себя, вы можете выиграть сто сражений без единого потеря. Если вы знаете только себя, но не своего оппонента, вы можете победить или проиграть. Если вы не знаете ни себя, ни своего врага, вы всегда будете подвергать себя опасности.

В этом случае ваш враг - это HTML, и вы либо сами, либо регулярное выражение. Возможно, вы даже Perl с нерегулярным регулярным выражением. Знайте HTML. Знайте сами.

Я написал хайку, описывающий характер HTML.

HTML has
complexity exceeding
regular language.

Я также написал хайку, описывающий характер регулярного выражения в Perl.

The regex you seek
is defined within the phrase
<([a-zA-Z]+)(?:[^>]*[^/]*)?>
0
задан Uwe Keim 17 January 2019 в 15:52
поделиться

1 ответ

Это происходит потому, что индексы выходят из строя, а механизм связывания модели mvc не может правильно связать список, потому что значения name, содержащие позицию индекса, больше не являются последовательными.

Одним из способов решения этой проблемы является создание ajax-вызова, который возвращает ваше частичное представление с обновленным набором данных, который не содержит удаленную строку, и заменяет старый частичный HTML новым, который имеет правильные индексы.

Это будет выглядеть примерно так:

Событие JS для кнопки удаления:

$(document).on("click", ".red-box", function () {
    var id = 1; // this would be the id of the thing you are removing, if needed
    $.get('/path/to/remove', { id: id }, function(data){
       $("#times").html(data);
    }
});

Действие

public ActionResult Remove(int id) {
   // Get data based on id and make any dB updates you need to make

   var model = GetData(); // Get new NWwebappCS.Models.TimeFilter without removed row
   return PartialView("TimeTable", model);
}

Что-то в этом роде ....

0
ответ дан zgood 17 January 2019 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: