ASP.NET MVC3: добавление текстовых полей с помощью Jquery и привязка к модели - PullRequest
2 голосов
/ 03 апреля 2012

Я создал вид, который предлагает пользователю ввести некоторые записи с номером счета и сохранить их в БД.Теперь появилось новое требование, мы должны быть в состоянии сохранить номера счетов 1..N для одной записи.Нет проблем в базе данных, но я не могу найти чистый способ изменить вид и модель.На данный момент я делаю это:

 <div class="editor-label">
            @Html.LabelFor(x => x.InvoiceNumber1)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(x => x.InvoiceNumber1)
            @Html.ValidationMessageFor(x => x.InvoiceNumber1)
        </div>

Чтобы удовлетворить новое требование, мне нужно было бы создать какую-то кнопку, которая позволит пользователю добавлять дополнительные текстовые поля (через qjuery) в представление.Но как мне связать эти динамически добавленные текстовые поля с моделью в форме отправки?

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Отметьте http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx и http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/ вы используете последовательные индексы, но чтобы иметь возможность удалять или добавлять строки с помощью javacript, вы можете использовать непоследовательные индексы, как описано в обеих ссылках. Привет

2 голосов
/ 03 апреля 2012

Предположим, ваша модель выглядит следующим образом:

// model
public class InvoiceModel
{
    public List<int> InvoiceNumbers { get; set; }
}

Теперь, если вы назовете свои входные данные InvoiceNumbers[0], InvoiceNumbers[1] и т. Д., Значения будут правильно привязаны к свойству InvoiceNumbers модели..

...