Сунь Цзы, древний китайский стратег, генерал и философ, сказал:
Говорят, что если вы знаете своих врагов и знаете себя, вы можете выиграть сто сражений без единого потеря. Если вы знаете только себя, но не своего оппонента, вы можете победить или проиграть. Если вы не знаете ни себя, ни своего врага, вы всегда будете подвергать себя опасности.
blockquote>В этом случае ваш враг - это HTML, и вы либо сами, либо регулярное выражение. Возможно, вы даже Perl с нерегулярным регулярным выражением. Знайте HTML. Знайте сами.
Я написал хайку, описывающий характер HTML.
HTML has complexity exceeding regular language.
Я также написал хайку, описывающий характер регулярного выражения в Perl.
The regex you seek is defined within the phrase <([a-zA-Z]+)(?:[^>]*[^/]*)?>
Это происходит потому, что индексы выходят из строя, а механизм связывания модели 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);
}
Что-то в этом роде ....