Я хотел бы знать мысли людей о том, как лучше всего сделать обратное к Phil Haack's Model Binding To A List. У меня есть форма, которая содержит несколько отдельных полей, а также поля формы, которые динамически создаются с использованием JQuery. Это означает, что когда я запрашиваю базу данных для редактирования, она возвращает объект, который сам по себе будет иметь n количество объектов (каждый один и тот же), прикрепленный к нему.Напротив «привязки модели к списку»
Я хотел бы знать, что люди предложили бы как лучший способ создания «динамических» частей форм и, в частности, обеспечить выбор правильных элементов для выпадающих списков. У меня есть смутное представление о том, что это будет включать в себя элементы управления пользователями, но я борюсь с тем, как собрать все это вместе.
Форма:
<form action="/MyItems/Edit" method="post">
Title: <input type="text" name="Title" value="" /><br />
Description <input type="text" name="Description" value="" /><br /><br />
<input type="hidden" name="myItem.Index" value="0" />
<input id="item[0].Amount" name="item[0].Amount" type="text" value="" />
<select id="item[0].selectA"><option value="1">1</option>
<option value="2">2</option><option value="3">3</option></select>
<select id="item[0].selectB"><option value="1">1</option>
<option value="2">2</option><option value="3">3</option></select>
<input type="hidden" name="myItem.Index" value="1" />
<input id="item[1].Amount" name="item[1].Amount" type="text" value="" />
<select id="item[1].selectA"><option value="1">1</option>
<option value="2">2</option><option value="3">3</option></select>
<select id="item[1].selectB"><option value="1">1</option>
<option value="2">2</option><option value="3">3</option></select>
<input type="hidden" name="myItem.Index" value="2" />
<input id="item[2].Amount" name="item[2].Amount" type="text" value="" />
<select id="item[2].selectA"><option value="1">1</option>
<option value="2">2</option><option value="3">3</option></select>
<select id="item[2].selectB"><option value="1">1</option>
<option value="2">2</option><option value="3">3</option></select>
</form>
Все от скрытого ввода до конца второго списка выбора можно повторить п раз. DTO, что в настоящее время гидратированный из запроса базы данных выглядит следующим образом:
public class MyItem
{
public string Name { get; set; }
public string Description { get; set; }
public IEnumerable<SelectItem> SelectItems { get; set; }
}
Каждый SelectItem
тогда выглядит следующим образом:
public class SelectItem
{
public int SelectA { get; set; }
public int SelectA { get; set; }
}
Я надеюсь, что я объяснил это хорошо, спасибо заранее для тех, кто взяв чтобы посмотреть на это.
Спасибо, Giraffe, я буду хорошо смотреть на это завтра утром и обязательно отвечу. – dave