ну решается это в mvc достаточно просто.
гуглить в сторону editor(view)template for custom object
в /views/shared/ создете папочку editortemplates
в ней кладете представление для редактирования вашей модели автор
@model YourApp.Models.Author
Html.EditorFor(model => model.FirstName)
Html.EditorFor(model => model.LastName)
в представлениях Create/edit там где хотите нарисовать контролы для полей автора из кастомного преставления выше пишете
Html.EditorFor(model => model.Author)
дальше, что Вам придётся сделать
для добавления первого автора сразу в форму Вам надо в представление create отдавать уже созданный обьект класса book
// http.get
public ActioResult Create()
{
Book newbook = New Book();
IEnumerable newbook.authors = new IEnumerabe();
newbook.authors.Add(new Author());
return View(newbook);
}
вам это снимет кучу гемора
дальше, вам таки понадобится жаба скрипт, добавляющий и удаляющий строки из dom елемента страницы передл отправкой его на сервер.
я рисовал свой костыль с помощью товарищей (но у меня цель — изучение mvc/html/js), можно поискать нужную библиотечку в nuget'ах.
ну или могу своим поделиться.
хотя у меня в планах уже есть написание видео курса о том как писать сложные приложения на mvc, а то рамки основ по mvc3/4 унылы донельзя и проходятся под пиво за полчаса.