Я новичок в asp.Я должен написать приложение в MVC, у которого есть база данных, где у меня есть две таблицы.Один родительский стол реализуется один ко многим с дочерним столом.
Parent
-------------
parent_id
name
Children
-------------
children_id
parent_id (foreign key)
name
Когда пользователь хочет создать элемент для родительского стола, редактор должен иметь возможность добавить (создать) дочерний элемент.
Когда пользователь редактирует Parent, он должен иметь возможность удалять / редактировать Children.
Невозможно добавлять / редактировать / удалять Children в отдельном редакторе
Я думаю, что я должен использовать javascriptсоздать дополнительные элементы управления для ребенка.Я могу сделать это, но я не знаю, как сопоставить этот элемент управления HTML для модели?
Я написал это представление:
<script language="javascript" type="text/javascript">
function add_child() {
$('#children').append($('<input name="child[' + ++$('#children>input').get().length + ']" />'));
}
</script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Create Parent</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div>Children:</div>
<div id="children">
@Html.TextBox("child[1]")
</div>
<div>
<input onclick="add_child()" type="button" />
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Это работает отлично.Но я действительно не знаю, как отобразить этот элемент в моей родительской модели.
Теперь моя модель для создания представления выглядит следующим образом:
public class ParentModel {
public ParentModel() {
Children = //... get all children from database
}
public string Name { get; set; }
// this should be an ids of selected children
public string[] SelectedChildren { get; set; }
// children to display
public ICollection<ChildModel> Children { get; set; }
}
public class ChildModel {
public string Name { get; set; }
}
Как заполнить этот дочерний элемент значениямииз вида?
Контроллер:
public class ParentController : Controller
{
// show form
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index() {
ParentModel model = new ParentModel();
return View(model);
}
// Get Parent and Children
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(ParentModel form) {
// I want to read a form.CreatedChildren
// but it is Null
return View();
}
}
Я хочу прочитать форму. Создано, но это Нуль ...