У меня есть коллекция электронных писем, хранящихся в модели представления, которые я привязываю к ListBox в представлении.
@Html.TextBox("txtAddEmail") <img id="btnAddEmail">Add Email</img>
@Html.ListBox("Emails", Model.Emails)
@Html.ValidationMessageFor(m => m.Emails)
Я бы хотел, чтобы пользователь мог добавлять электронные письма, вводя их в текстовое поле txtAddEmail и нажимая кнопку добавления изображения, которая затем добавляла бы электронное письмо в список на клиенте. Затем, когда форма будет опубликована, электронные письма с новостями появятся в коллекции писем. У меня работает клиентский код, который добавляет элемент, но после публикации коллекция писем не содержит новых писем.
var emailToAdd = $("#txtAddEmail").val();
$('#Emails').
append($("<option></option>").
attr("value", emailToAdd).
text(emailToAdd));
Есть идеи, как это сделать?
UPDATE
Мне удалось добавить один элемент к значению во ViewModel, используя эту
@Html.ListBox("EmailAdded", Model.Emails)
Письмо, добавленное на клиенте, отображается в строковом значении EmailAdded, но как мне добавить его в коллекцию? Я решил попробовать привязку непосредственно к списку писем. После добавления в список на клиенте модель представления не показывает добавленную электронную почту. Есть идеи?
@Html.ListBoxFor(model => model.Emails, new MultiSelectList(Model.Emails, "Id", "Address"));
@Html.ValidationMessageFor(m => m.Emails)
UPDATE
Нашел ответ, который искал здесь