#asp.net-mvc-3 #razor
#asp.net-mvc-3 #razor
Вопрос:
У меня есть несколько вложенных коллекций, внизу которых находятся «Теги», которые я хотел бы, чтобы пользователь мог добавлять и удалять с помощью Javascript перед отправкой обратно.
Для того, чтобы «теги» были отправлены обратно на мой контроллер соответствующим образом, входные элементы должны быть названы соответствующим образом (см. Этот пост:http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3)
т. е.
<input name="Programs[3].Tags[7].Id" value="MyTag" />
При первом рендеринге моего представления я использую EditorTemplates и EditorFor для рендеринга HTML, который дает мне точное наименование, самое главное, что он знает, какие «числа» использовать.
Однако, если я добавлю тег с помощью Javascript, мне нужно добавить новый входной элемент в DOM и назвать его правильно. Как бы я получил правильные числа для названия моего элемента с помощью Javascript?
Ответ №1:
Вероятно, самыми простыми способами являются синтаксический анализ чисел из идентификатора с использованием регулярного выражения и добавление к нему или вывод скрытых полей, содержащих два числа (или «следующие») и считывание их оттуда.
Комментарии:
1. Спасибо, Дэнни. Я ненавижу возвращаться к DOM с помощью Javascript только для регистрации индексов. Вы не знаете способа перенести индекс в скрытый элемент с помощью Razor во время его создания?
2. К сожалению, я не знаю простого способа. Я согласен, что делать это в JS отстой : (
3. c’est la vie! Еще раз спасибо, Дэнни.